Forum Webscript.Ru
Общие => Базы данных => Тема начата: Foshvad от 17 Марта 2004, 12:08:33
-
Есть запись в таблице (table1) , которая должна быть проассоциирована с несколькими записями из другой таблице (table2). Например, таблица фильмов, каждый из которых относится к нескольким жанрам.
Кто как решает подобные задачи?
Хранить в определенном поле таблицы table1 идентификаторы из table2, к которым относится данная запись, разделенными запятой?
Или заводить третью таблицу в которой будут только два поля
Key1 и key2 и в ней, соответственно, хранить все ассоциации?
-
3 таблицу.
-
Я делаю так.
В таблице жанром есть поля: название жанра и его ид
в таблице фильмов поля: ид, ид жанра, название фильма
-
Z@
ну и как у тебя фильм может иметь несколько жанров ?
-
Разве такое бывает?
обычно у жанра несколько фильмов. Если связи типа много ко много то тогда надо 3-ю таблицу делать. А если много к одному то хватит и двух.
-
Z@
ты вопрос автора темы внимательно прочитал ?
-
А правильно ли в таком случае получать список жанров для работы с ним таким путем:
$q=mysql_query("SELECT genre FROM id_genres WHERE id=".$id);
while ($x=mysql_fetch_row($q)) $arr[]=$x;
?
-
Z@
hanslinger
И при чем тут Subj?
tserbis
Спасибо, так и сделал.
И удалять связи при удалении записей проще, и отслеживать ассоциации проще.