|
|
|
| Допустим к новостям есть теги. Три варианта структуры таблиц:
1.
Таблица tags
id_tags | slovo
Таблица connect
id_connect | id_tags | id_news
В таблице tags теги, а в connect они присваиваются новостям.
Количество использование определенного тега считаем запросом.
2.
Таблица tags
id_tags | slovo | kolichestvo
Таблица connect
id_connect | id_tags | id_news
Тоже самое. Только количество использований тега в таблице. Соответвенноо увеличиваем его при добавлении новости с таким тегом.
3.
Таблица tags
id_tags | id_news | slovo
Всего одна таблица. Записи будут повторяться, количество считаем запросом.
Какой вариант лучше, быстрей и правильней? | |
|
|
|
|
|
|
|
для: Sergeous
(19.06.2008 в 14:19)
| | Лучше второй вариант - если вдруг новостей будет очень много, этот вариант самый выгодный в плане производительности, хотя конечно потребует больше обслуживающего кода. | |
|
|
|
|
|
|
|
для: cheops
(19.06.2008 в 15:23)
| | А мне кажется при втором варианте получаются лишние запросы при добавлении, то есть получается сначала проверяем, есть ли такое слово в таблице, если есть, то считаем, сколько, и обновляем запись, если нет то добавляем.
Хотя в первом варианте тоже надо будет считать.
Вот в третьем варианте только одна таблица, это играет роль, если в базе итак много таблиц?
Хотя я вообще склоняюсь к первому варианту.
Есть еще мнения? | |
|
|
|
|
|
|
|
для: Sergeous
(28.06.2008 в 01:57)
| | За 1ый вариант. Если id_tags в таблице connect определить как индекс, то выборка количества записей с определённым значением id_tags не будет накладной в плане нагрузки.
>Вот в третьем варианте только одна таблица, это играет роль, если в базе итак много таблиц?
>
База не сломается, даже если в ней будут сотни таблиц, главное чтобы структура была оправданной. | |
|
|
|