Моделирование базы данных: как связать книгу с ее привязками? - PullRequest
0 голосов
/ 04 февраля 2011

У конкретной книги может быть 0 или более связанных переплетов (например, в твердом переплете, в мягкой обложке и т. Д.). Итак, скажем, у меня есть книга 1, и она связана с книгами 2, 3 и 4. Я мог бы иметь таблицу, которая выглядит так:

book_id     related_book_id
1           2
1           3
1           4

Теперь, я думаю, из этого следует, что книга 2 относится к 1, 3 и 4. Итак, я мог бы расширить записи таблицы, чтобы включить их:

book_id     related_book_id
2           1
2           3
2           4

... и сделать то же самое для 3 и 4. Затем сделайте это для миллиона книг, существующих на рынке.

Это хорошая идея? Я вижу (1,2) как (2,1).

Я использую MySQL.

1 Ответ

5 голосов
/ 04 февраля 2011

Я думаю, вам нужны два разных типа сущностей: Публикация и Заголовок. Публикация будет грубо связана с ISBN, что также гарантирует уникальную идентификацию разных изданий. В этом случае «титульный» объект будет связан с несколькими публикациями.

Title
-----------
TitleId int
AuthorId int
BookTitle nvarchar(500)
etc...

Publication
-----------
PublicationId int
CoverType char(1)
Edition nvarchar(50)
TitleId int (foreign key to Title)
etc...
...