美文网首页java小白的进阶之路
数据库的表设计浅谈

数据库的表设计浅谈

作者: 一只很懒很懒的虫 | 来源:发表于2018-03-23 00:24 被阅读27次

          做一个项目最关键的就是设计好数据库中的表。表的设计一般会从需求开始出发分析出可能存在的实体类。今天具体谈一谈具体表的设计。

          学过数据库的我们都知道表的三大特性即为:实体完整性,参照完整性,还有用户自定义完整性。

          所谓实体完整性就是这个实体的主键不能为空值。而参照完整性就是外键值不能为空。被参照的表中一定要有和这个表一致的数据,如果被参照表中没有对应的数据就会被报错。用户自定义完整性是用户自己根据实际情况对某些字段设初值。

          而表的设计一般要达到2或3范式。基本上第三范式就不会再出现一个数据冗余,删除和插入异常的问题。如果再往高级走达到bcnf或者是4nf的话,就是表的数量会增加,要做大量的联表查询,整体来说反而性能降低了。

          那么什么是数据库的1,2,3范式呢。首先第一范式就是原子性,属性需要细化不能再分。第二范式就是没有非主属性对主属性的部分依赖,也就是所有的非主属性都只能由所有的候选码联合找到。第三范式是除了要完全依赖还不能有传递依赖。就是说候选码能通过一个非主属性找到另外一个非主属性。

          讲到这,可以用毕设的官网中的表设计进行研究。数据字典的设计之类的。看看别人是如何设计一张表的。

          很多时候的数据字典表都会因为分类的不同而设置一个父类id由父类 id找到自己的类别。这是一个表与表的自联关系。还有的类似于树状结构的表设计。同样如果存在有需求是找到某一级的最顶级,则可以加一个字段存储最高级。或者如果有需求要知道自己属于哪一级可以添加一个一段表示层级。数据库的设计往往需要按照具体的需求做出相应的调整。并不是一蹴而就的。

           

    相关文章

      网友评论

        本文标题:数据库的表设计浅谈

        本文链接:https://www.haomeiwen.com/subject/inokqftx.html