Я ищу небольшой совет по дизайну базы данных / модели.Я настраиваю систему котировок, и мне было интересно, как создать таблицу (ы) позиций, поскольку существует несколько способов указать одну LineItem
;
- Свободная форма: Просто введите описание и сумму
- Поиск по прайс-листу: Выберите элемент и количество из прайс-листа
- Обслуживание по времени: ВыберитеЦентр затрат и количество часов
- Купленные товары: Выберите лучшую цену и добавьте наценку
- и т. д.
У меня есть таблица Quote
, которая содержит общие данные (номер цитаты, клиент, дата создания / изменения и т. Д.), Quote
может иметь много QuoteSection
, QuoteSection
может иметь много LineItem
,Я вижу два (разумных?) Варианта на данный момент
Наличие таблицы в базе данных для каждого из различных вариантов позиции LineItemFreeform
, LineItemPriceList
, LineItemService
и т. Д..
Имеют общую таблицу LineItem с полем данных XML, каждый добавляемый мной тип LineItem имеет свою XML-схему
Какой из двух(если да!) - лучший / наиболее гибкий вариант, и есть ли другие предложения для моделирования данных этого типа?