@Alksar

Как выбрать, что сохранить в БД?

Добрый день, не знаю как поступить, что хранить в базе данных?
Объясняю:
База данных создается для работы с заказами. Заказы вводятся в программе. На основе заказов создаются платежные документы, содержащие конкретные услуги - например добавляют заказ "Добавить заказ на перевод, языки Английский, Русский, Перевод нотариально заверить.", при этом добавление заказа реализуется заполнением формы "заказ на перевод", содержащей input'ы для указания языков, и чекбокс для указания будет заверение или не будет. На основе этих данных создаются две услуги - "перевод с европейских(или западных) языков, нотариальное заверение перевода.".
Так вот, что должно храниться в базе данных?
1)информационные поля заказа (два языка и булево значение "есть заверение или нет"). На основе этих данных всегда можно автоматически составить эти две конкретные услуги.
2)должны хранится именно услуги. Потому что наверное полезно иметь возможность делать выборки по разным типам услуг, да и в конце концов именно услуги попадают потом в документы.
Но по таким услугам не получится восстановить полную входную информацию о заказе, например те же языки (так как в услуге указывается только европейские они или западные), а значит придется хранить дополнительные сведения и заказа.
3) из пункта 2) вытекает этот пункт - и то и то. И заказ в виде набора полей. И ассоциированный с ним набор услуг в отдельной таблице. Но набор услуг можно получить динамически из данных заказов, не будет ли это дублированием?

Какой вариант выбрать?
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. заказ (осн. поля)
2. список услуг, для привязки к заказу (id, наименование, доп.поля для каждой услуги)
Плюсы: при добавлении доп. полей - выражение выборки данных на основе заказа не нужно будет менять. (если доп. поля - только дописать в конец)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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