Использование набора со значениями из таблицы - PullRequest
3 голосов
/ 05 апреля 2010

Я пишу базу данных всех DVD, которые у меня есть дома. Одно из полей, actors, мне бы хотелось, чтобы это был набор значений из другой таблицы, в которой хранятся акторы. Поэтому для каждого фильма я хочу сохранить список актеров, каждый из которых выбран из списка актеров, взятых из другой таблицы.

Возможно ли это? Как мне это сделать? В основном это будет набор внешних ключей.

Я использую базу данных MySQL для приложения Django (python), поэтому любая подсказка в SQL или Python будет высоко ценится.

Надеюсь, вопрос ясен, большое спасибо.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2010

Сделайте ваши столы такими:

Movies
MovieID   int auto increment/identity PK
MovieTitle
MovieDescription
etc...

Actors
ActorID  int auto increment/identity PK
ActorName
DateOfBirth
etc...

MovieActors
MovieID      PK  and FK
ActorID      PK  and FK
RoleName
etc...

Не храните несколько актеров в одном поле таблицы Movies, разбейте их на отдельные строки в таблице MovieActors.

Если вы объедините всех участников в одном поле, это затруднит написание запросов. Например, вам нужно будет выполнить манипуляции со строками, чтобы запросить все фильмы, в которых был актер X.

1 голос
/ 05 апреля 2010

Ответ тоже ясен. Вам понадобится не поле, а другая таблица films_actors. Эта таблица будет выступать в качестве вашего поля, но гораздо надежнее. Это называется отношением ко многим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...