一般常见的字段类型有:varchar、int、bigint、date、timestamp、tinyint、decimal
varchar:对应的是java中的字符串,对于varchar(255)里面的255,只是最后的展示长度,并不影响varchar本身的长度。想深入的可以自行学习。
然后关于设计:
- 如果是手机号: 一般建议先前端或者后端代码里面进行正则表达式,长度一般11,类型varchar。
- 订单号、编号相关: 建议20左右,一般生成UUID会截取20左右。
- 时间类型: 一般采用时间戳timestamp,可以不写长度,默认就行(14),也可以自己加上,对应java 7 和其之前版本使用Date、java8及其以上使用LocalDateTime。
- 金钱类型: 你可以试试float、double,看下你的老板会不会干掉你,推荐使用decimal,对应java里面的BigDecimal,或者最不济的情况下可以选择varchar,在处理的时候就要注意了。
- 表id: 一般都是自动生成,Auto Inc,类型一般是int、varchar、bigint,长度都为11左右,对应java Integer、String、Long。一般自增就行。
- 图片的URL: 建议255以上起步,对于多张图片,推荐以 ,分隔进行url的保存,这个很容易长度不足,我实际生产中设置为1000,这个根据你上传文件时,文件的取名有关,以及文件保存目录层级有关。
- 关于外键: 一般使用逻辑外键能解决的,就不要使用物理外键,一般类型也是与改表id一致(int、varchar、bigint)。
- true/false: 对应数据库中的tinyint,一般长度是1,java中是boolean。
- status: 显示状态相关的,一般使用int,长度一般是1即可。
- 对于Age:推荐使用int,长度3即可。
- 身高体重: 推荐使用float、double,长度5。
- 性别: 命名为gender,一般可以选择使用int,长度为1,以0、1来区分;可以使用varchar,man和women,长度为5。
- 文本、备注等: 使用varchar,长度控制在255左右。
- 其他:: 关于数字型、整型使用int 长度不超过11,超过使用bigint,varchar推荐长度55左右。
只是个人推荐,具体需要更具业务需求来设置,大部分场景可以这样设计,只是个人意见,提供参考,有问题欢迎探讨。