Помогите разработать схему базы данных для магазина пиццы - PullRequest
2 голосов
/ 24 марта 2011

Вот сценарий:

create table Customer
(
CustomerId int primary key identity(1,1),
Name nvarchar(64) not null,
LastName nvarchar(256) not null,
Telephone nvarchar(32),
MobilePhone nvarchar(32),
Address nvarchar(256)
)

create table Product
(
ProductId int primary key identity(1,1),
Name nvarchar(64),
Price decimal
)

create table StoreOrder
(
StoreOrderId int primary key identity(1,1),
Date datetime,
CustomerId int foreign key references Customer(CustomerId),
Total decimal
)

create table ProductStoreOrder
(
ProductStoreOrderId int primary key identity(1,1),
StoreOrderId int foreign key references StoreOrder(StoreOrderId),
ProductId int foreign key references Product(ProductId),
Quantity int
)

Я запутался в том, как обрабатывать начинки.Я должен иметь возможность добавлять начинки в базу данных где-то и создавать пиццы с N начинками, каждая начинка должна также иметь соответствующую цену.

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

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

Спасибо за ваше время.

Ответы [ 3 ]

4 голосов
/ 25 марта 2011

Я думаю, что это хороший кандидат для использования дизайна супер / подтипа БД.Вот быстрый рисунок, который, я считаю, решает проблемы, которые у вас есть на данный момент.Это просто база, вы можете взять ее и заполнить необходимые атрибуты и цены, если вас интересует.

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

Пойдите с предложением @Andy или добавьте логическое значение в таблицу продуктов, указывающее, является ли продукт топпингом или нет.

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

Вы можете попробовать что-то вроде:

  • Пицца, сода, палочки, салат - это таблица продуктов.
  • Продукты имеют много начинок (внешний ключ обеих таблиц в соединительной таблице,цена депортируется в этой таблице присоединения)

После того, как вы можете определить "шаблон" продуктов в другой таблице, определить категорию и, если продукт имеет начинки или другие специальные атрибуты.

...