首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MultiValued依赖对DataBase进行标准化(4NF/5NF)

使用MultiValued依赖对DataBase进行标准化(4NF/5NF)
EN

Stack Overflow用户
提问于 2012-02-17 14:38:49
回答 1查看 945关注 0票数 0

我计划做一个门户数据库的工作。这里我有一些候选人订阅了一些通知。

(当然,候选人姓名将是ID &候选人有更多与person相关联的列,不会显示这些列。)我搞不懂这是第四范式问题还是第五范式问题!我需要一些帮助来减少冗余。

我能不能在不丢失IsEnabled信息的情况下将其拆分成类似于这些表的东西,以便我可以删除冗余?

这是可能的,还是不可避免的冗余?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-17 22:28:53

从任何角度来看,这都不是一个范式问题。

如果您希望保持第一个表不变(包括boolean属性),那么您所拥有是一个约束。因此,在第一个表中,必须为每个可能的组合(候选,通知类型)显示一行。但这不是NF问题!如果以某种方式可以确定布尔值应该是什么,仅给出候选或仅给出通知类型,那么这将是一个NF问题。

在这种方法中,您错误地认为是“冗余”,这恰恰是该约束的存在,以及它在更新数据库时使您的生活变得困难的影响。

去掉boolean属性,只写入第一个表中那些"true“的行。现在您不再有这个约束,只有一个常规的“连接”表将候选人链接到已启用的通知类型,就像世界各地的数据库中有无数个“连接”表一样。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9323962

复制
相关文章

相似问题

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