Invoice 表中的 SalesID 属性设置为 PK 和 FK,以便 Invoice_Detail 表的每一行都可以有标识符(SalesID 和 CakeID)。同时这里的SalesID是Invoice表和Invoice_Detail表之间的链接。除此之外,在 1NF 中我们还消除了派生属性,其中派生属性是其值取决于其他属性的属性。
这里属性没有SubTotal 和
TotalPrice 是派生属性,因为它们是计算结果。在 1NF 阶段,我们还将输入上面包含的附加信息。 发票 瑞士电话号码数据 {销售 ID[PK]、销售日期、客户 ID、客户姓名、客户电话、客户电子邮件、客户地址、员工 ID、员工姓名、员工职位、员工地址、员工电话} 发票明细 数量} 2-NF:在2NF阶段,我们将确定哪些属性包含部分依赖关系以及完整功能依赖关系,其中部分依赖关系是依赖于某些属性的属性。
此处部分依赖意味着该属性依赖于主键之
同时,完全功能依赖是完全依赖于两个主键的属性。这里我们可以观察到CakeName和CakePrice属性只依赖于一个主键,即CakeID,所以我们必须将这些属性分离到一张新表中,即Cake。
同时,这里的数量属性依赖于两个主键,即SalesID和CakeID,因此数量属性必须保 散装铅 留在Invoice_Detail表中。 发票 {销售 ID[PK]、销售日期、客户 ID、客户姓名、客户电话、客户电子邮件、客户地址、员工 ID、员工姓名、员工职位、员工地址、员工电话} 发票明细 {销售ID[PK][FK],蛋糕ID[PK][FK],数量} 蛋糕 {蛋糕ID[PK],蛋糕名称,蛋糕价格} 这里我将包含部分依赖关系的属性分离到 Cake 表中,并以 CakeID 为主键。