首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要数据库设计规范化帮助(5nf)

需要数据库设计规范化帮助(5nf)
EN

Stack Overflow用户
提问于 2010-08-05 14:37:23
回答 2查看 3.9K关注 0票数 8

你们能告诉我怎样才能把这个ERD变成第五种正常形态吗?昨天我们做了一个课堂作业,我们让一个真正的客户来向我们解释他的需求,我的小组想出了一个模型,我正试图更进一步,看看我是否能把它变成第5种正常形式,这样我就能更好地理解它,因为下周,我们将做另一组ERD,它必须出现在5nf中。问题是,我不知道从哪里开始,这本书无法通过我的理解。你们能帮帮我吗?Erd模型http://img534.imageshack.us/img534/2118/capturekk.jpg

新信息“假客户需求”

客户有两个部门--“实验室1,实验室2”--向他订购医疗用品,如手套、宠物等。这些部门已经发展壮大,他希望了解库存中有什么,供应商在卖什么,谁有最好的价格,它来自什么成本中心。 他解释说,这个物品被订购的方式是,一个人去向他要补给品,然后他写下这个人是谁的实验室,从这个人的名字,以及什么成本中心付款。但他也希望追踪到日期已经购买了什么,哪些是库存,哪些是必须购买的。他还举了一个例子,一些用户希望某个特定供应商提供的商品可能没有最优惠的价格,他还在邮件中收到了一些目录,其中也包含了他想要跟踪的价格。

如果它乱七八糟的话,我很抱歉,但这都是记忆中的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-05 15:45:48

我要直截了当地说,您当前的模式实际上没有任何资格使用5NF。引用维基百科的一段话,它说大多数4NF表已经符合5NF:

仅在少数情况下使用4NF表不符合5NF。在这种情况下,约束4NF表中属性值的有效组合的复杂现实约束并不隐含在该表的结构中。如果这类表未标准化为5NF,则维护表内数据逻辑一致性的负担必须部分由负责插入、删除和更新该表的应用程序承担;表中的数据可能会变得不一致。相反,5NF设计排除了这种不一致的可能性。

表格

也许这样做的目的不是为了使您的数据库5NF,而是为了了解它的结构相较于5NF,并提出一个论点,为什么它可能已经在5NF。

更新:从评论中读取了某种形式的共识,似乎您的设计已经在5NF中了,不管是出于设计还是出于偶然的原因。

票数 4
EN

Stack Overflow用户

发布于 2010-08-05 16:41:49

免责声明:如果不了解您的业务逻辑,我可能会完全错误地提出以下一些建议。

好的,我在您的数据库模式中看到了一些东西。

  1. 您的成本中心表看起来既是查找表,也是关联表。因此,如果您有一定数量的成本中心,例如5,但是有1000个用户,那么这个表将有5000条记录,它们都存储成本中心名称(这是假设成本中心的分配并不是每个用户的唯一)。您可能希望将用户关联拆分到一个单独的表中,该表具有自己的costcenterId和userId的PK和FKs。
  2. 您的库存表,我假设它存储的库存数量在手头的一个项目,应该只需要一个手头的数量,不确定的描述是什么。如果描述并不是每个项目清单的唯一描述,那么您可能希望将其拆分为它自己的查找表,并在清单表中引用它。
  3. 您正在将"lineQuantity“存储在供应商表中。这个专栏是干什么用的。听起来像是在某种程度上与特定的订单有关(购买的物品数量?)如果是这样的话,您将希望将其拆分到它自己的表中,并将其与订单关联,而不是与供应商关联。虽然这个建议可能是完全错误的,但不知道lineQuantity到底是什么。
  4. 最后一个建议不确定这对你的班级是否重要。您正在将所有数据类型定义为CHAR(10),您可能希望将这些数据类型更改为用于数据库的实际数据类型。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3415798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档