我期待的关于以下设计的建议和评论。预期所有表格都是大型表格(数百万条记录),并经常更新和查询,并允许任何类型的更新(更新,插入,删除)。以下数据库设计的优缺点是什么?
-- 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