Matthijs,
Для реляционного проектирования вы должны посмотреть, как эти объекты связаны друг с другом, а затем принять решение о модели данных. Вот первоначальный проект и условия, которые я принимаю. У вас могут быть другие правила для вашего случая ... опубликуйте их, и кто-то должен иметь возможность выложить точную модель.
Each book can be written by many authors and each author can write different books. ( M:N)
RECIPES <--> BOOKS (M:N)
RECIPES <--> INGREDIENTS (M:N)
These would be the initial set of tables.
BOOKS, AUTHORS, BOOKS_AUTHORS_ASC, RECIPES, BOOKS_RECIPES_ASC,
INGREDIENTS, RECIPES_INGREDIENTS_ASC.
Если носитель относится к одной и только одной книге, у вас будет другая таблица, скажем, носитель со следующими столбцами. BOOK_ID - родительский столбец, с которым связан этот носитель.
MEDIA
-------------------------------------
MEDIA_ID NUMBER -- Primary-key
BOOK_ID NUMBER -- Foreign Key..
MEDIA_TYPE varchar2(20) -- 'IMAGE','VIDEO' etc..
other_column1 varchar2(50),
other_column2 varchar2(50)
-- so on..
И если данное изображение / видео может быть связано с несколькими книгами и каждая книга может иметь разные изображения, то у вас будет свой объект для ассоциации ... что-то вроде ..
Media
--------
Media_id number -- primary key
media_type varchar2(10),
media_name varchar2(100),
--- other columns.
MEDIA_BOOK_ASC
--------------
MEDIA_BOOK_ASC_ID NUMBER,
MEDIA_ID NUMBER, --foreign key to media table.
BOOK_ID NUMBER, --foreign key to book table
--other columns related to associations...