/ / Використовуйте кілька записів для одного запису [дублікат] - mysql, дизайн бази даних

Використовуйте кілька записів для одного запису [дублікат] - mysql, дизайн баз даних

Скажімо, у мене є база даних із такими таблицями:

Таблиця movie містять:

movie1
movie2

Таблиця actors містять:

actor1
actor2
actor3

Скажімо actor2 з'являється в обох фільмах movie1 і movie2. Як я можу використовувати це зараз, не вводячи для кожного актора інший запис, щоб вказати йому власний ідентифікатор фільму в таблиці actors, щоб заощадити трохи місця?

Відповіді:

2 для відповіді № 1

Я думаю, що ви шукаєте, це таблиця з'єднань (таблиця посилань) (http://en.wikipedia.org/wiki/Junction_table):

(Просто заради цього я встановив множину для обох імен таблиць)

tab movies
= movie1
= movie2

tab actors
= actor1
= actor2
= actor3

tab movies_actors
= actors (id of tab_actors)
= movies (id of tab_movies)

Потім ви можете приєднати tab_movies_actors до tab_movies і tab_actors, щоб дізнатись, хто з акторів належить до яких фільмів:

SELECT * FROM tb_movies tm
JOIN tb_movies_actors tma ON (tm.id = tma.movies_id)
JOIN tb_actors ta ON  (tma.actors_id = ta.id)

або конкретний фільм:

SELECT * FROM tb_movies tm
JOIN tb_movies_actors tma ON (tm.id = tma.movies_id)
JOIN tb_actors ta ON  (tma.actors_id = ta.id)
WHERE tm.id = 10

0 для відповіді № 2

Всякий раз, коли існує зв'язок "багато до багатьох", для цього потрібна таблиця посилань, подібна до тієї, яка показана в попередній відповіді.