1

数据库派生值是否与外键相同?

基于 connoly 和 begg 书籍,第四版第 352 页的导出值为 An attribute that represents a value that is derivable from the value of a related attribute or set of attributes, not necessarily in the same entity type.

如果我们有 2 个表,例如 CUSTOMER 和 ORDER,

Customer
- Id_Cust
- Name
- Phone

ORDER
- Order_id<
- id_cust

我们可以说“ORDER.id_cust 是从 Customer.id_cust 派生的”吗?

实际上,我对上面的概念感到非常困惑。

4

1 回答 1

2

不,外键和派生值是两个不同的东西。

product  quantity  price  subtotal
--
ACH123   5         $1.50  $7.50

在上面的简化表中,“小计”是派生值。它来源于“数量”和“价格”。(通过将它们相乘。)

数据库设计者通常不会在不使用 CHECK() 约束或触发器的情况下存储派生值,以确保派生值始终正确。在上表中,将数量更新为 4 会使派生值“小计”不正确。CHECK() 约束可以阻止对“数量”的更新,除非更新也具有正确的“小计”值。当“数量”或“价格”发生变化时,触发器可以自动更新“小计”。

CHECK() 约束通常是更好的选择。

于 2012-12-19T04:33:58.180 回答