关于数据库字段的一点思考

设计了很多数据库,很多表,前几天想了下字段的设计,

比如我们要设计一个商品表,商品的业务属性有名称,品牌,价格,生产商等,

那这个表的设计很简单

表名:Product

字段: id 唯一主键

            name 名称

            brand 品牌

            price 价格

            manufacturer 生产商

这个表可以说就完成了,下面列出一些表的相关需求

1.系统中需要单独记录生厂商,即有一个生产商的表,那么商品的生产商

就变成了一个外键manufacturerId,关联生产商表

 

2.需要知道所有商品什么时候创建的,最后一个是什么时候修改

增加字段createTime 创建时间, updateTime 更新时间,

 

3.商品的数量很多,生产商也很多,并且需要经常根据生产商的名字做模糊查询,为了提高查询效率

直接在商品表增加生产商名字字段,manufacturerName 生产商名字

 

4.商品的修改需要审核才能生效,审核中的商品不能修改

增加字段status 状态,提交审核后商品的状态变为审核中,根据商品状态限制操作

 

现在商品表变成下面的样子

  id 唯一主键

  name 名称

  brand 品牌

  price 价格

  manufacturerId 生产商

  manufacturerName 生产商名字

  createTime 创建时间

  updateTime 更新时间

  status 状态

可以给这些字段分下类,

name,brand,price,manufacturerId是业务的必须字段,即业务字段,

manufacturerName是为了方便提高效率加的,即冗余字段

createTime,updateTime 是为了记录用户的操作,即记录字段

status 决定了对数据可以做操作,即逻辑字段

总结下,数据库表的字段可以分为四类,业务字段,冗余字段,记录字段,逻辑字段

 

关于数据库字段的一点思考

上一篇:一文学会常用 MySQL 分库分表方案


下一篇:前端从数据库获取请求参数