Database design 我可以在2NF中使用FK,在关系模式中使用3NF吗?
因此,基本上我是在规范化发票,在所有2NF关系模式中包含FK*INV_NUM*是否错误。这是我已经拥有的 *显示PK 1NF(*库存数量,库存日期,库存ID,库存名称,库存结构,库存状态,零件数量,零件说明,零件数量,零件价格,LBR数量,LBR说明,LBR价格,税率) 部分依赖Database design 我可以在2NF中使用FK,在关系模式中使用3NF吗?,database-design,database-schema,rdbms,relational,database-normalization,Database Design,Database Schema,Rdbms,Relational,Database Normalization,因此,基本上我是在规范化发票,在所有2NF关系模式中包含FK*INV_NUM*是否错误。这是我已经拥有的 *显示PK 1NF(*库存数量,库存日期,库存ID,库存名称,库存结构,库存状态,零件数量,零件说明,零件数量,零件价格,LBR数量,LBR说明,LBR价格,税率) 部分依赖 (C_ID-->C_名称、C_名称、C_STR、C_状态) (零件数量-->零件说明、零件数量、零件价格) (LBR\u数量-->LBR\u说明,LBR\u价格) 传递依赖 (C_州-->税率) 2NF 客户(
- (C_ID-->C_名称、C_名称、C_STR、C_状态)
- (零件数量-->零件说明、零件数量、零件价格)
- (LBR\u数量-->LBR\u说明,LBR\u价格)
- (C_州-->税率)
INV_DATE
非常重要
换句话说,FD不是
{C_STATE}->{TAX_RATE}
,而是{C_STATE,INV_DATE}->{TAX_RATE}
FD不是{C_ID}->{C_STATE}
,而是{C_ID,INV_DATE}->{C_STATE}
FD不是{PART\u NUM}->{PART\u PRICE}
,而是{PART\u NUM,INV\u DATE}->{PART\u PRICE}
等等
所以你的选择是
发票(也包括采购订单…)的常见设计是“捕获并冻结”所有相关信息 所以基本上我是在规范发票 事实上不,不是真的 发票本质上是暂时的,因此,
INV_DATE
非常重要
换句话说,FD不是
{C_STATE}->{TAX_RATE}
,而是{C_STATE,INV_DATE}->{TAX_RATE}
FD不是{C_ID}->{C_STATE}
,而是{C_ID,INV_DATE}->{C_STATE}
FD不是{PART\u NUM}->{PART\u PRICE}
,而是{PART\u NUM,INV\u DATE}->{PART\u PRICE}
等等
所以你的选择是
发票(以及采购订单…)的常见设计是“捕获并冻结”所有相关信息。您所说的“可传递依赖性”是什么意思?可传递依赖在3个属性之间。这是我的书《可传递依赖–X->Y,Y->Z》(X是主键)中对可传递依赖的定义。因此,X->Z是一个可传递依赖–只有当非基本属性(例如,Y->Z)之间存在函数依赖时,可传递依赖才存在NoPrime=不是任何候选密钥的一部分•候选密钥=最小超级密钥在我的问题的业务规则中,它说税率是根据客户的状态计算的,所以我是如何得出这个假设的。通常的符号是X->Y->Z,这意味着X->Z,但不是相反,所以它们不是等价的符号。所以,如果你只说C_STATE-->TAX_RATE,这并没有告诉我们这应该是一个可传递的依赖项,也没有告诉我们哪一个是“中间”属性。顺便说一句,在3NF的上下文中,哪些属性是主要的变得很重要。您所说的“可传递依赖性”
C_STATE-->TAX_RATE
是什么意思?可传递依赖在3个属性之间。这是我的书《可传递依赖–X->Y,Y->Z》(X是主键)中对可传递依赖的定义。因此,X->Z是一个可传递依赖–只有当非基本属性(例如,Y->Z)之间存在函数依赖时,可传递依赖才存在NoPrime=不是任何候选密钥的一部分•候选密钥=最小超级密钥在我的问题的业务规则中,它说税率是根据客户的状态计算的,所以我是如何得出这个假设的。通常的符号是X->Y->Z,这意味着X->Z,但不是相反,所以它们不是等价的符号。所以,如果你只说C_STATE-->TAX_RATE,这并没有告诉我们这应该是一个可传递的依赖项,也没有告诉我们哪一个是“中间”属性。顺便说一句,在3NF的上下文中,哪些属性是prime变得很重要。