@gerrrper

Правильная структура бд. Нужна ли дополнительная таблица?

Есть таблицы
Document
--id
--name
--upload_date

DocumentType
--id
--type
--document_id

Таблица DocumentType содержит
--учебный план
--программа
--реферат
--сочинение

Вот, "программа" в свою очередь подразделяется на
--дошкольная
--школьная
--высшее учебное заведение
-- и т.п.

Правильно ли создавать таблицу ProgramType и связывать ее с DocumentType?
ProgramType
--id
--name
--document_type_id

заполняя значение только для типа документа "программа", а для всех остальных оставляя значение null, или нужно делать по другому? Как правильно?
  • Вопрос задан
  • 2357 просмотров
Пригласить эксперта
Ответы на вопрос 5
cjey
@cjey
Попробуйте взглянуть на проблему с позиции удобства дальнейшего использования и доработки.
В вашей формулировке можно не плодить дополнительные таблицы а просто добавить в DocumentType
* учебный план
* дошкольная программа
* школьная программа
* программа высшего учебного заведения
* реферат
* сочинение
Но организовывать фильтрацию(например только программ) будет неудобно.

Если в дальнейшем может появиться разделение рефератов на дошкольные/школьные и вы захотите фильтровать документы для школьников, то лучше делать так как вы предлагаете.
Ответ написан
Комментировать
@maxyc_webber
Web-программист
да
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
нарисуйте хоть на бумажке таблицы и связи, возможно вам будет проще ответить на вас же вопрос.
Ответ написан
rpsv
@rpsv
делай либо хорошо, либо никак
Вот как то так если в картинках, на мой взгляд.

схемка
bcd8725b7a6d4371ba3d023419640d31.png
Ответ написан
Комментировать
PavelMSTU
@PavelMSTU
Это необходимо для реального использования или это необходимо, чтобы сдать домашнее задание?
Если для реального использования -- то смотрите ответ cjey, если для того чтобы сдать преподу -- правильный ответ "да".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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