我期待的關於以下設計的建議和評論。預期所有表格都是大型表格(數百萬條記錄),並經常更新和查詢,並允許任何類型的更新(更新,插入,刪除)。以下數據庫設計的優缺點是什麼?
-- product
create table Product(
productID int not null identity(1,1),
name varchar(100) not null,
constraint PK_Product primary key(productID)
)
-- client
create table Client(
clientID int not null identity(1,1),
name varchar(100) not null,
constraint PK_Client primary key(clientID)
)
-- order
create table [Order](
orderID int not null identity(1,1),
clientID int not null,
orderDateTime datetime not null,
orderAmount money not null,
orderNote varchar(max) null,
constraint PK_Order primary key(orderID),
constraint FK_Order_Client foreign key(clientID) references Client(clientID)
)
exec sp_tableoption 'Order', 'large value types out of row', 0
create index IX_Order_client on [Order](clientID)
-- items
create table OrderItem(
orderItemID int not null identity(1,1),
orderID int not null,
productID int not null,
qty int not null,
amount money not null,
constraint PK_OrderItem primary key(orderItemID),
constraint FK_OrderItem_Order foreign key(orderID) references [Order](orderID),
constraint FK_OrderItem_Product foreign key(productID) references Product(productID)
)
create index IX_OrderItem on OrderItem(orderID)
你需要做什麼樣的查詢? – 2010-09-04 23:03:55
'OrderItem'在會計/發票中通常被稱爲'LineItem' – 2010-09-04 23:29:49
這個假設的設計適用於POS系統Mark。有更新,插入,訂購歷史庫存,AR查詢等 – 2010-09-04 23:30:00