|
|
|
| У меня часто в работе указывается такой пункт задания, но я пытаюсь это обойти как-то)) Хочу знать на будущее как это сделать?
Допустим есть фильм/изделие и он принадлежит разным категорями одновременно.
К примеру. Фильм "Унесённые негром".
Принадлежит категорям: Фантастика, Приключения, Сказка.
Как это сохранить в БД с тем, чтобы легко можно было легко определить принадлежность фильма к категории.... И делать поиск по БД по признаку КАТЕГОРИЯ.
Может писать с id? Типа 1,6,9. Тогда как искать?
А может лучше fantactic, action,tale? Тогда вроде бы уже проще искать: WHERE `category`='action'
У кого какие мысли будут? | |
|
|
|
|
|
|
|
для: vovik_sumy
(14.11.2006 в 17:08)
| | Это отношение многие (фильмы) ко многим (категориям) . Реализуется введением третьей таблицы - таблицы, хранящей строки соответствия.
таблица категорий categories (id, name, ...)
таблица фильмов films (id, name, ...)
таблица соответствия фильмов категориям genres(id, id_cat, id_film) | |
|
|
|
|
|
|
|
для: Trianon
(14.11.2006 в 17:44)
| | Круто! Это супер! Спасибо!!!
Вопрос на засыпку. При редактировании карточки фильма: Если я меняю отметки. Перегоняю фильмы в другие категории или одну меняю на другую. То как это сохранить?
Удалить текущие и снова записать новые? | |
|
|
|
|
|
|
|
для: vovik_sumy
(14.11.2006 в 18:08)
| | удалить записи, соответствующие снятым отметкам. И добавить записи, соответствующие вновь поставленным отметкам.
В принципе, можно удалить все старые (для этого фильма) и добавить все отмеченные. | |
|
|
|
|
|
|
|
для: Trianon
(14.11.2006 в 18:12)
| | Да. Второй вариант думаю самый подходящий.. А то вычислять какие галочки я снял а потом вычислять какие я добавил дольше чем второй!
Спасибо) | |
|
|
|
|
|
|
|
для: 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)";
|
| |
|
|
|