我试图对简单的数据库概念有更多的了解,并在更高的规范化方面遇到麻烦。举例来说,博伊斯·科德(Boyce Codd)正规形式(BCNF)和第4正规形式(4NF)的下面是什么样?
INVOICE(客户编号,名字,姓氏,电话,发票编号,DateIn,DateOut,ItemType,数量,ItemPrice,ExtendedPrice,特殊说明)
到目前为止,我已经做到了,但是我知道我还没有到那儿:
客户(客户编号,名字,姓氏,电话,发票编号)
发票(发票编号,日期输入,日期输出,项目类型,数量,项目价格,特殊说明)
根据我正在阅读的书,以下假设已经存在:
CustomerNumber->(名字,姓氏),而不是CustomerNumber
->->(名字,姓氏)
CustomerNumber->->电话。可能有多个电话号码
每个客户。
一个客户有多个ORDER,但是每个ORDER仅与
一位客户。
一个ORDER具有许多ItemType,但是每个ItemType仅出现一次
任何订单。
物料价格因订单而异,因此ItemType确定
ItemPrice。
SpecialInstructions与每个项目类型相关联,因为
对于不同的物品,可以给出不同的指示。
订单号是分配给订单本身的编号,不包含
与任何特定客户的关联。因此,我们有这样的数字
例如“ 123454”,“ 123455”等,而不是“客户101,订单1”,
客户101,订单2”,客户102,订单1”等。
ItemPrice会随订单而变化,因此可以提供特殊定价
反映在价格上。
谁能帮我吗?
最佳答案
我不确定如何回复此帖子(see this meta post),所以我将提出一些想法,希望能使您朝正确的方向发展,而不是一个“答案”。
@Analytic,看来您只完成了项目#2!您的ORDER桌子在哪里?那ITEM呢?请将该帖子添加到您的帖子中,以便我们知道您的初次尝试(我们不会为您做功课!)。
因此,由于您仅在#1和#2上给了我们您的努力,我将在客户电话号码上发表评论。您的设计仅允许每个客户使用一个电话号码,因此不符合要求吗?您认为哪种数据结构可以让您为一个客户拥有多个电话号码?您会在客户表上创建更多字段,例如Phone1,Phone2,Phone3等吗?那可行吗?你要放多少?如果客户的资产超出了您的计划,该怎么办?请查看描述one-to-many)关系的网页。
如果您想在这篇文章中添加更多的工作,并付出真诚的努力,我们将尽力帮助您。
祝好运。