🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 表与字段规范 * 数据库名,表名,字段名都必须为小写字母+下划线形式,不得使用大写字母。 * 数据库名与表名同一为单数形式,例如User模型对应user表。 * 表主键必须为id,类型必须为int(11), unsigned,自增。 * 所有数值型字段无负数形式的都必须为unsigned。 * 无特殊情况所有字段必须不能为null。 * 表达是与否概念的字段,必须使用 is\_xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否) * 表名不使用复数名词 * 小数类型为 decimal,禁止使用 float 和 double。 * 字段允许适当冗余,以提高性能,但是必须考虑数据同步的情况。冗余字段应遵循: 1)不是频繁修改的字段。 2)不是 varchar 超长字段,更不能是 text 字段。 正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存 储类目名称,避免关联查询。 * 无特殊情况所有表必须添加`create_time`,`update_time`,`delete_time`三个字段,并且默认都为0,数据量 * 无特殊情况,所有金额字段必须为`decimal(16,2)`类型。 ## 索引规范 索引名称必须以`idx_`开头,后面跟索引字段名称,例如`name`的索引为`idx_name`。 ## 常用表与字段规范 所有 `名称`、`标题`类的字段必须都用`name`来表示,禁止使用 ~~titile~~ 表示。 ``` 这样做的好处: 1.统一命名字段。例如不用考虑新闻的标题是name还是title,也不用考虑活动的名称是title还是name;因为都是name。 2.提高复用率。当有关联的时候,不确定关联表的名称(标题)是name还是title的情况下,需要看具体字段是什么,会耽误时间,同时本来可复用的代码会改来改去,导致非常乱。 ``` ### 用户表(user) | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | username | varchar(50) | 用户名 | | password | varchar(255) | 密码 | | nickname | varchar(50) | 昵称 | | mobile | char(11) | 手机号 | | email | varchar(50) | 邮箱 | | openid | varchar(255) | 微信openid | | avatar | varchar(255) | 头像url | | sex | tinyint(1) | 性别,0未知1男2女 | | level_id | tinyint(3) | 等级ID | | money | decimal(14,2) | 余额 | | integral | int(11) | 积分,积分只能为整数 | | status | tinyint(1) | 状态,1启用0禁用 | ### 用户等级表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | tinyint(3) | 主键 | | name | varchar(20) | 等级名称 | ### 轮播图表(slide) | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 轮播名称 | | jump_type | tinyint(2) | 跳转类型 | | jump_target | varchar(100) | 跳转目标 | | sort_number | mediumint(9) | 排序 | ### 订单表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | order_no | char(16) | 订单号 | | user_id | int(11) | 用户ID | | money | decimal(16,2) | 订单金额 | | freight | decimal(16,2) | 运费 | | pay_money | decimal(16,2) | 最终支付金额 | | pay_status | tinyint(1) | 支付状态 | | pay_status | tinyint(1) | 支付状态 | | create_time | int(11) | 订单创建时间 | | update_time | int(11) | 订单更新时间 | | delete_time | int(11) | 订单删除时间 | ### 收货地址表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | user_id | int(11) | 用户ID | ### 省市区表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 等级名称 | ### 积分记录表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 等级名称 | ### 短信验证码表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 等级名称 | ### 文章(新闻/资讯)表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 等级名称 | ### 文章(新闻/资讯)分类表 | 字段名 | 字段类型 | 说明 | | --- | --- | --- | | id | int(11) | 主键 | | name | varchar(50) | 等级名称 |