Разработка макета таблиц для хранения книг, изданий, цветов - PullRequest
0 голосов
/ 29 июня 2018

Скажем, например, что я должен упорядочить эту информацию: книги, книжные издания и цвета каждой страницы.

Давайте предположим, что книга может иметь только одно издание, и, поскольку приложение написано на PHP, у каждой таблицы будет свой набор функций для чтения и записи на них, и я хотел бы сделать его простым, если это возможно. Я не могу решить, лучше ли это сделать:

[Books]
bookid
author

[Editions]
editionid
bookid
title
publisher
isbn

[PagesColors]
editionid
page
color

или пытается упростить:

[Books]
bookid
bookidreference
author
title
publisher
isbn

[PagesColors]
bookid
page
color

и такие записи:

1, 0, "Jane Austen", null, null, null
2, 1, null, "Emma", "Books Enterprise", 12231231213
3, 1, null, "Emma in Italian", "Jane Austen Italian Editions", 45345354334

"bookidreference" будет использоваться для связи книг и изданий в одной таблице.

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Я не знаю, что вы хотите использовать в "editions.bookreference", но первый кажется более последовательным. Может ли название книги меняться с новым изданием, а также меняется ли ISDN? Все ценности, которые не могут меняться между изданиями, должны оставаться в ваших «книгах». Вы также должны добавить столбец с датой выпуска. Это может не потребоваться сейчас, но, вероятно, будет (если ваша задача не является школьным проектом).

Кроме того, это выглядит хорошо. Может быть, переместить авторов в таблицу и использовать таблицу отношений между книгами и авторами, но концепция надежна.

0 голосов
/ 29 июня 2018

Я пришел к этой идее:

[Books]
bookid
bookid_parent
author
release_date

[BooksDetails]
bookid
title
publisher
isbn
...other details without index.

[PagesColors]
bookid
page
color

В этом случае у меня не будет столько NULL, сколько во втором решении. Записи будут выглядеть так:

[Books]
1, 0, "Jane Austen", 2018-01-01
2, 1, null, 2018-02-02
3, 1, null, 2018-03-03

[BooksDetails]
2, "Emma", "Books Enterprise", 12231231213
3, "Emma in Italian", "Jane Austen Italian Editions", 45345354334
0 голосов
/ 29 июня 2018

Я думаю, что упрощенная версия лучше, так как она очень лаконична и проста для понимания .... Но старайтесь избегать нулевых записей в базе данных ..

...