Несколько таблиц или поле с типом данных XML? - PullRequest
2 голосов
/ 23 марта 2011

Я ищу небольшой совет по дизайну базы данных / модели.Я настраиваю систему котировок, и мне было интересно, как создать таблицу (ы) позиций, поскольку существует несколько способов указать одну LineItem;

  • Свободная форма: Просто введите описание и сумму
  • Поиск по прайс-листу: Выберите элемент и количество из прайс-листа
  • Обслуживание по времени: ВыберитеЦентр затрат и количество часов
  • Купленные товары: Выберите лучшую цену и добавьте наценку
  • и т. д.

У меня есть таблица Quote, которая содержит общие данные (номер цитаты, клиент, дата создания / изменения и т. Д.), Quote может иметь много QuoteSection, QuoteSection может иметь много LineItem,Я вижу два (разумных?) Варианта на данный момент

  1. Наличие таблицы в базе данных для каждого из различных вариантов позиции LineItemFreeform, LineItemPriceList, LineItemService и т. Д..

  2. Имеют общую таблицу LineItem с полем данных XML, каждый добавляемый мной тип LineItem имеет свою XML-схему

Какой из двух(если да!) - лучший / наиболее гибкий вариант, и есть ли другие предложения для моделирования данных этого типа?

1 Ответ

1 голос
/ 29 июля 2011

Не так уж и много, но я бы подумал о супертипе "позиция" и подтипах для каждого вида позиции.

Я не читал внимательно, но это выглядит как довольно приличное описание моделирования супертипов / подтипов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...