Что бы tsql был для этого типа схемы базы данных? - PullRequest
0 голосов
/ 27 марта 2011

enter image description here

Я задал этот вопрос , и кто-то предложил этот тип схемы. Я не знаком с тем, как работают супер / подтипы. Можете ли вы показать мне пример TSQL, как я бы создал эту базу данных?

Еще одна проблема, с которой у меня возникают проблемы, когда я оборачиваюсь, мне дают заказ и набор предметов в этом порядке, как я узнаю, является ли предмет пиццей, напитком или гарниром?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 марта 2011

Одним из способов является использование супер-ключей для ограничения подтипов

  • Элемент будет иметь столбец TypeID (поиск новой таблицы ItemType)
  • New ItemType 1 = Pizza, 2 =Стороны, 3 = Напиток и т. Д.
  • Для элемента с текущими столбцами PK существует новое уникальное ограничение + TypeID
  • В каждой таблице Pizza, Beverage, Sides имеется столбец typeID с ограничением CHECKограничить записи в таблице одним из Pizza, Sides, Beverage.Таким образом, 1 для пиццы и т. Д.
  • Величина FK от Pizza, Beverage, Sides to Item совпадает с новым уникальным ограничением, приведенным выше

Это также отвечает на ваш второй вопрос

0 голосов
/ 27 марта 2011

Таблица:

ITEM_SUPER_TYPE

  • ITEM_SUPER_TYPE_ID (pk, IDENTITY)
  • ОПИСАНИЕ

ITEM_SUB_TYPE

  • ITEM_SUB_TYPE_ID (pk, IDENTITY)
  • ITEM_SUPER_TYPE_ID (от fk до ITEM_SUPER_TYPE.ITEM_SUPER_TYPE_ID)
  • ОПИСАНИЕ

ITEM

  • ITEM_ID
  • ITEM_SUB_TYPE_ID (от fk до ITEM_SUB_TYPE.ITEM_SUB_TYPE_ID)

Таким образом, супертип может быть выведен из подтипа.

...