当前位置:  开发笔记 > 数据库 > 正文

何时在数据库表之间使用1对1关系?

如何解决《何时在数据库表之间使用1对1关系?》经验,为你挑选了4个好方法。

数据库设计问题:您何时决定使用1对1关系表?

我看到的其中一个地方是,例如,当你有一个User和UserProfile表时,人们会拆分它们而不是将所有列放在User表中.

从技术上讲,您可以将所有列放在一个表中,因为它们的关系是1对1.

我知道有人说对于UserProfile表,随着时间的推移你需要改变表来添加更多的列,但我真的不认为这是拆分表的强有力的理由.

所以,如果我要设计一个User表和UserProfile表,那么在一个表中执行它会更好吗?



1> Alex Wayne..:

我唯一一次使用1比1的关系就是当我希望它多态地属于多个对象时.

就像地址一样.用户有一个地址,企业有一个地址,有特色的餐馆有一个地址.所有实例都在同一个表中处理,并具有相同的代码来管理它.可以把它想象成重构数据模型,这样你就可以在其他地方重用它.



2> Max Schmelin..:

考虑一下如何设计业务对象.您是否要在其上拥有包含50个属性的User对象,或者您将拥有具有一些详细信息属性的User对象,然后是包含配置文件的其他数据的Profile对象?

当表中的数据相关时,您应该使用1对1,但不是出于相同的目的.(可能措辞更好)

它也可以使事情更容易找到.我讨厌的东西并不多,只需要查看75列的表格.



3> Ed Guiness..:

经典的原因是避免可空列.

在列中具有NULL值会使编写清晰(可维护)SQL变得更加困难.@ 奥维德写了关于这个在这里,对工件吸引克里斯日期.



4> Ricardo Vill..:

仅当用户表中的所有记录数不需要UserProfile表中的字段时.例如,如果您有3,000,000个用户但其中只有3,000个具有UserProfiles,则拆分它们可能是有意义的(以避免一大堆空列.)

虽然现在有了数据库速度和存储成本降低的日子,但由于这个原因,拆分它们并没有太大的区别......

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有