use*_*043 2 sql sql-server-2008
我有一个产品表.在我的表中有一个字段,如productid,价格,数量,总数.
比我多种价格,数量字段和存储在总字段中的答案.
不要在表中存储派生值 - 这是糟糕的设计.
由于总和是价格和数量的乘积,因此您可以随时计算出这些值 - 为什么存储它?如果这样做,您将在数据库中创建不一致数据的可能性.
直接从SQL中检索这样的值是微不足道的,无需存储它:
SELECT price, quantity, price * quantity AS total
FROM product
更新:
正如@Martin指出的那样,SQL Server 2005+具有计算列,这些列是非持久性或索引列,为方便起见,返回计算结果.
我强调这些是不持久的列.