loading请求处理中...

实现mysql数据库设计规范化的3个建议

2021-12-01 07:07:25 阅读 14201次 标签: sql数据库数据库设计 作者: a454466904

实现mysql数据库设计规范化的3个建议

    一、数据库对象要有统一的前缀名
 
  一个对比复杂的使用体系,其对应的数据库表通常以千计。若让数据库管理员看到目标名就了解这个数据库目标所起的效果,恐怕会对比艰难。并且在数据库目标引证的时分,数据库管理员也会为不能敏捷找到所需求的数据库目标而头疼。

   为此,一品威客网小编建议在开发数据库之前,最好能够花一定的时间,去制定一个数据库对象的前缀命名规范。如小编在数据库设计时,喜欢跟前台应用程序协商,确定 合理的命名规范。小编最常用的是根据前台应用程序的模块来定义后台数据库对象前缀名。虽说mysql数据库命名规范可以根据自己喜好来,不过这个命名规范最好应该在数据库管理员与前台应用程序开发者之间达成共识,并 且严格按照这个命名规范来定义对象名。

  其次,表、视图、函数等最佳也有一致的前缀。如视图可以用V为前缀,而函数则可以使用F为前缀。如此数据库办理员无论是在平常办理还是目标引用的时分,都能够在最短的时间内找到自个所需求的目标。

    二:尽量只存储单一实体类型的数据

  这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型 是指所需要描述对象的本身。小编举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户 要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。

   如当后续有图书出版时,则需要为每次出版的图书增加作者信息,这无疑会增加额外的存储空间,也会增加记录的长度。而且若作者的情况有所改变,如住址改变 了以后,则还需要去更改每本书的记录。若这个作者的图书从数据库中全部删除之后,这个作者的信息也就荡然无存了。很明显,这不符合sql数据库设计规范化的需 求。

  遇到这种情况时,小编建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。

    三: 表中记录应该有一个唯一的标识符
 
  在mysql数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最 好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。

  以下这个简略的图表闪现了像左边 Names 和 Address 这样的简略规范化的表,怎样经过应用不规范化结构来创建一个扁平的表结构。别的,在数据库设计的时候,最好还能 够参加行号。如在出售订单办理中,ID号是用户不能够保护的。可是,行号用户就能够保护。如在出售订单的行中,用户能够经过调整行号的大小来对订单行进行 排序。通常情况下,ID列是以1为单位递进的。可是,行号就要以10为单位累进。如此,正常情况下,行号就以10、20、30依次扩展下去。若此刻用户需 要把行号为30的纪录调到第一行显示。此刻,用户在不能够更改ID列的情况下,能够更改行号来完成。如能够把行号改为1,在排序时就能够按行号来进行排 序。

    如此的话,原来行号为30的纪录如今行号变为了1,就可以在第一行中显现。这是在实践使用程序设计中对ID列的一个有用弥补。这个内容在教科书上是没 有的。需要在实践使用程序设计中,才会把握到这个技巧。

 

数据库设计公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
数据库设计相关任务
DESIGN TASK 更多
中学广播站LOGO设计

¥500 已有40人投标

椅子外观设计

¥10000 已有0人投标

为幼儿园设计园徽

¥500 已有58人投标

中式甜品海报设计

¥200 已有0人投标

拆除设备机械设计,微信沟通

¥10000 已有0人投标

老酒店客房翻新求设计效果图

¥500 已有0人投标

东魁杨梅包装箱设计

¥1080 已有0人投标