MySql 设计表注意事项

使用Navicat设计:

长度:设置对int型(包括和int型相关的类型如smallint等)数据的显示和大小没有任何影响,所以不用设置。
对char型数据,长度的设置影响输入字符串的大小,即长度,char(4)意味着只能在表中输入最多四个字符,不然报错------Data too long for column

timestamp:如果勾选非空需要默认值会自动填写CURRENT_TIMESTAMP;会勾选根据当前时间戳更新,这个可以手动去掉,如果有些字段不需要一定要记得去掉。

tinyint:设置1个长度显示为(0,1,2),2个长度就显示(01,02);如果是有符号的,最大只能为255,无符号暂时不知道

唯一索引:能建立唯一索引,尽量建立,因为在插入数据时有可能会重复插入,如果此时有唯一索引,那么使用insert ignore就能忽略数据库中已经存在的数据(根据主键或者唯一索引判断),如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据
参考:MySQL避免插入重复记录的方法

默认值:有关金额或者数量的字段如果设置为非空,要设默认值,一般初始化为0。
mysql 空值(null)和空字符(‘‘)的区别 引用此文章的结论。
        在设置默认值的时候,尽量不要用null当默认值,如果字段是int类型,默认为0;
        如果是varchar类型,默认值用空字符串(’’)会更好一些。带有null的默认值还是可以走索引的,只是会影响效率。当然,如果确认该字段不会用到索引的话,也是可以设置为null的。
        在设置字段的时候,可以给字段设置为 not null ,因为 not null 这个概念和默认值是不冲突的。我们在设置默认值为(’’)的时候,虽然避免了null的情况,但是可能存在直接给字段赋值为null,这样数据库中还是会出现null的情况,所以强烈建议都给字段加上 not null。
        尽管在存储空间上,在索引性能上可能并不比空值差,但是为了避免其身上特殊性,给项目带来不确定因素,因此建议默认值不要使用 NULL。

字段值:不要用0作值,否则mybatis,判断的时候户默认为空,不然得手动添加判断等于0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值