Вы хотели бы иметь три таблицы: 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