/ / Използвайте множество записи за един запис [дубликат] - 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

Всеки път, когато има връзка „много към много“, тя изисква таблица с връзки като тази, която е показана в предишния отговор.