В базе данных, которую я проектирую, есть 3 основные таблицы: BOOKS
, ARTICLES
, NOTES
.
Каждая книга или статья может иметь несколько заметок, мой оригинальный дизайн был таким, как это, и это означает, что и заметки о книгах, и заметки о статьях идут в таблице заметок. Ниже приведены столбцы таблицы NOTES
:
-
note_id
-
note_type
-
note_type_id
-
note_content
note_type
может быть "книгой" или "статьей"; note_type_id
является FK для book_id, если note_type является "книгой" ИЛИ идентификатором статьи, если note_type является "статьей".
Теперь я начинаю задаваться вопросом, правильно ли это (или наилучшим образом нормализованный) дизайн. Альтернативный подход заключается в использовании 5 таблиц
книги/статьи/заметки/book_notes/article_notes
Таким образом, я могу отдельно хранить заметки и примечания к статье, столбцы похожи на
'notes' {note_id, note_content} 'book_notes' {book_id, note_id} 'article_notes' {articel_id, note_id}
Какой из них правильный или лучше?