@Gumper

Правильно ли построена структура бд?

Здравствуйте, подскажите пожалуйста какая структура бд правильная?
Проблема в таблице "comics_page" в ней очень важно что бы была правильная последовательность:
5de31a153350a204880094.png
Есть такой вариант:5de31ae396ab2015776757.png
Но я не знаю как в нем реализовать последовательность(разве что доп ячейку ставить в которой проводить нумерацию).
Спасибо за ответ)
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
@baitarakhov
Первый вариант с отдельной колонкой для каждой page - это не правильно, будет правильнее запись для каждой страницы хранить в отдельной таблице, например в структуре:
id integer, -- primary key для page
comics_id integer, -- foreign key для comics
page_order integer, -- порядок для page
page varchar(255) -- значение для page


Далее для того, что бы для каждой comics_id не было дублированных page_order - устанавливаешь ограничение уникальности для полей comics_id, page_order. Это всего лишь пример, возможно у вас будет лучшее решение.

Самое простое, возьмите ваши предполагаемые структуры данных и напишите SQL выборки для возвращения необходимых вам данных, в итоге выберите тот вариант, где SQL выражение получиться простым без сложных соединений и под-запросов с агрегацией.

Также обратите внимание, где проще всего возможно будет контролировать уникальность данных средствами БД (constraints), что бы потом вам не пришлось разбираться с дублированными записями в таблицах.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Во многих СУБД порядок возвращаемых значений может быть какой угодно, если вы не указали по какому критерию сортировать.
Поэтому да, самый правильный вариант - ввести поле, по которому можно эти страницы отсортировать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы