【发布时间】:2013-11-22 08:49:15
【问题描述】:
我有一个餐厅的数据库。项目表 (itemid,itemname,price) 和订单表 (orderid,itemid,quantity,price)。我在订单表中有价格字段,只是因为如果项目表中的价格发生了变化,那么订单价值当然不应该改变。无论如何要自动设定价格吗? 我似乎不能这样做:
CREATE TABLE ORDER(
OrderID INT IDENTITY(1,1) PRIMARY KEY,
ItemID INT NOT NULL,
Quantity INT NOT NULL,
Price MONEY AS (SELECT Price FROM ITEM)
);
【问题讨论】:
-
每当您创建新订单时,我都会查看当前价格。在 SQL 中没有干净的方法可以做到这一点,除了 可能 一个仍然丑陋的触发器。
-
是的,如果您使用的是关系数据库,订单通常是您必须进行一些非规范化的事情。
-
好的,在我的添加过程中,我必须查找并分配它。没有简单的出路
标签: sql database-design