网站建设哪里去学,宁波网站建设设计公司信息,国贸附近网站建设,手机网站后台怎么进最近合作搞项目#xff0c;发现了很多问题。特别的#xff0c;数据库层面上的问题更为致命。记录一下#xff0c;希望后面看到博客的同学们注意。 注意#xff1a;以下观点只用于一般情况下的单体、微服务#xff0c;不保证适用所有场景。 一、ID问题
ID名称问题
如下图… 最近合作搞项目发现了很多问题。特别的数据库层面上的问题更为致命。记录一下希望后面看到博客的同学们注意。 注意以下观点只用于一般情况下的单体、微服务不保证适用所有场景。 一、ID问题
ID名称问题
如下图有的同学喜欢xx_id这就很让人迷惑。因为一般我们使用逻辑外键的时候才会这么写而实际开发的时候表的id就固定为id字段如图二。
ID自增长、映射类型
默认id自增长、映射为JAVA种的Integer
逻辑外键
一张表的逻辑外键最好限制为一个过多的逻辑外键尽量额外建表维护。
二、字符
长度
最好使用四种默认长度64、255、1024、2048使用别的长度要有明确的要求。超过2048麻烦额外建表。
适用范围
尽量不要用字符存枚举、类型、状态、ID
三、时间
不知道选的默认选DATATIME语句-默认当前时间 DEFAULT CURRENT_TIMESTAMP语句-更新字段后更新时间ON UPDATE CURRENT_TIMESTAMP没有必要不要存时间戳
四、整型
枚举字段使用默认tinyint不知道的整型默认int不要设定初始默认值让应用去控制
五、字段
超过2048字符长度的尽量使用额外一张表如果有大字符、大内容需要存使用文件服务。如果不想建文件服务就存文件名然后用本地文件系统。一定不要存文件到数据库。不要存模糊的字段不要使用默认值时间除外因为后期会变成一个坑。不要设计备注、冗余字段要改的表让它改冗余设计和bug一样恐怖
六、数据库的三大范式
如果谁设计的数据库不满足的让它改
不满足范式的设计后期大概率要出问题。
七、关系
表间关系
一对多、多对一的情况可以使用逻辑外键多对多的情况一定要建中间表而且命名要有明显的辨识度例如tm_user_role。tm就是中间表优先使用分组表而不是分组字段。
行关系 设计二叉树行时例如每个行都有id、parent_id其中parent_id是id的逻辑外键。 保证数据总量的有穷性、最大值不会影响性能。可以的话设计类似00112233一样的字段作为code或字段level进行快速识别。例如(第1-2、3-4、5-6行)、level代表树的高度。不要使用二叉树分组新建一个分组表。
八、字段切割
一张表最多20个字段超过需要切割。实际上最多15个就够了超过12个字段就应该仔细看是不是有问题。
最后以上就是我的个人经验如有想法请留言感谢。