Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Теги (какой вариант лучше?)
 
 автор: Sergeous   (19.06.2008 в 14:19)   письмо автору
 
 

Допустим к новостям есть теги. Три варианта структуры таблиц:

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

Всего одна таблица. Записи будут повторяться, количество считаем запросом.


Какой вариант лучше, быстрей и правильней?

   
 
 автор: cheops   (19.06.2008 в 15:23)   письмо автору
 
   для: Sergeous   (19.06.2008 в 14:19)
 

Лучше второй вариант - если вдруг новостей будет очень много, этот вариант самый выгодный в плане производительности, хотя конечно потребует больше обслуживающего кода.

   
 
 автор: Sergeous   (28.06.2008 в 01:57)   письмо автору
 
   для: cheops   (19.06.2008 в 15:23)
 

А мне кажется при втором варианте получаются лишние запросы при добавлении, то есть получается сначала проверяем, есть ли такое слово в таблице, если есть, то считаем, сколько, и обновляем запись, если нет то добавляем.

Хотя в первом варианте тоже надо будет считать.

Вот в третьем варианте только одна таблица, это играет роль, если в базе итак много таблиц?

Хотя я вообще склоняюсь к первому варианту.


Есть еще мнения?

   
 
 автор: Эй   (29.06.2008 в 22:54)   письмо автору
 
   для: Sergeous   (28.06.2008 в 01:57)
 

За 1ый вариант. Если id_tags в таблице connect определить как индекс, то выборка количества записей с определённым значением id_tags не будет накладной в плане нагрузки.

>Вот в третьем варианте только одна таблица, это играет роль, если в базе итак много таблиц?
>

База не сломается, даже если в ней будут сотни таблиц, главное чтобы структура была оправданной.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования