Как бы я нормализовал эту таблицу - PullRequest
0 голосов
/ 28 марта 2012

Как мне нормализовать следующую таблицу:

Table Order Detail:
-------------------
Order#
Item#
Desc
ShipDate1
Qty1
ShipDate2
Qty2
ShipDate3
Qty3
ShipDate4
Qty4
ShipDate5
Qty5
....
ShipDate20
Qty20

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Вы хотели бы иметь три таблицы: Item, Order и OrderDetail:

OrderDetail: OrderId, ItemId, Quantity, ShipmentDate
Order: Id, ...
Item: Id, Desc, ...

Лучше было бы отделить детали заказа от деталей доставки:

OrderDetail: Id, OrderId, ItemId, Quantity
Order: Id, ...
Item: Id, Desc, ...
OrderShipment: Id, OrderDetailId, ShipmentDate, Quantity

OrderDetail.Id - это суррогатный ключ для таблицы. Он снова используется в поле OrderShipment.OrderDetailId. Я включил Quantity в таблицу OrderShipment, чтобы вы могли поддерживать частичное выполнение заказа.

Описание товара можно найти, присоединившись к таблицам OrderDetail и Item. Вы можете получить информацию заголовка заказа, присоединившись к таблице Order.

В этом дизайне у вас может быть двадцать записей вместо стольких столбцов:

OrderId ItemId Quantity
10      123    5
10      489    20
10      238    39
0 голосов
/ 28 марта 2012

Определение Юка - это начало.Я бы также добавил идентификатор для детализации заказа, если один и тот же товар должен появляться в заказе более одного раза (например, чтобы учесть разницу в ценах, варианты доставки, гравировка и т. Д.).

Я такженашел вопрос немного двусмысленным, так как количества повторяются, но пункт не.

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