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

Форум MySQL

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

 

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

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

тема: Как указать принадлежность изделия разным категориям?
 
 автор: vovik_sumy   (14.11.2006 в 17:08)   письмо автору
 
 

У меня часто в работе указывается такой пункт задания, но я пытаюсь это обойти как-то)) Хочу знать на будущее как это сделать?

Допустим есть фильм/изделие и он принадлежит разным категорями одновременно.
К примеру. Фильм "Унесённые негром".
Принадлежит категорям: Фантастика, Приключения, Сказка.
Как это сохранить в БД с тем, чтобы легко можно было легко определить принадлежность фильма к категории.... И делать поиск по БД по признаку КАТЕГОРИЯ.

Может писать с id? Типа 1,6,9. Тогда как искать?
А может лучше fantactic, action,tale? Тогда вроде бы уже проще искать: WHERE `category`='action'

У кого какие мысли будут?

   
 
 автор: Trianon   (14.11.2006 в 17:44)   письмо автору
 
   для: vovik_sumy   (14.11.2006 в 17:08)
 

Это отношение многие (фильмы) ко многим (категориям) . Реализуется введением третьей таблицы - таблицы, хранящей строки соответствия.

таблица категорий categories (id, name, ...)
таблица фильмов films (id, name, ...)
таблица соответствия фильмов категориям genres(id, id_cat, id_film)

   
 
 автор: vovik_sumy   (14.11.2006 в 18:08)   письмо автору
 
   для: Trianon   (14.11.2006 в 17:44)
 

Круто! Это супер! Спасибо!!!

Вопрос на засыпку. При редактировании карточки фильма: Если я меняю отметки. Перегоняю фильмы в другие категории или одну меняю на другую. То как это сохранить?
Удалить текущие и снова записать новые?

   
 
 автор: Trianon   (14.11.2006 в 18:12)   письмо автору
 
   для: vovik_sumy   (14.11.2006 в 18:08)
 

удалить записи, соответствующие снятым отметкам. И добавить записи, соответствующие вновь поставленным отметкам.
В принципе, можно удалить все старые (для этого фильма) и добавить все отмеченные.

   
 
 автор: vovik_sumy   (14.11.2006 в 18:30)   письмо автору
 
   для: Trianon   (14.11.2006 в 18:12)
 

Да. Второй вариант думаю самый подходящий.. А то вычислять какие галочки я снял а потом вычислять какие я добавил дольше чем второй!
Спасибо)

   
 
 автор: Trianon   (14.11.2006 в 19:10)   письмо автору
 
   для: vovik_sumy   (14.11.2006 в 18:30)
 

Разницы практически никакой.

q1 = "DELETE FROM genres WHERE id_film = $film AND  NOT id_cat IN ($sel_list)";
q2 = "INSERT INTO genres (id_cat, id_film) 
        SELECT id as id_cat, $id_film AS id_film FROM categories WHERE id IN ($sel_list)";

   
Rambler's Top100
вверх

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