sqlserver 数据库设计规范

0 建议在ssms表设计器里增加说明和默认设置列,方便创建库。效果如下

image.png

设置方法参考 https://www.jianshu.com/p/d7d55a2f53d3

1 每个表一定要有主键

主键属于索引的一种,会提高查询效率。

2 每个表都要写中文注释和默认值

有中文注释(也就是数据库[说明]),方便业务理解,代码生成工具也会调用注释内容方便代码生成。

图2
2.1 表都要有默认值,除了个别的datetime类型

有默认值,避免判断数据为null,判断null效率很低下。除了个别datetime类型可以允许为null,例如更新时间updatetime字段,如果给默认值业务上可能会有歧义,避免这种情况可以设置为null。而addtime不允许为null是业务上的规定。

2.2 主键注释可以不写,要写可写表注释

主键写表注释(说明),方便查看表备注。

2.3 关联其他表字段,要在注释里写关联表

如图2 newsTypeid 注释写法:字段说明+ 关联xxx表主键

2.4 如果表的值含义是整数类型,C#程序可以用枚举来表示

如图2 newsTypeEnum 注释写法:字段说明 (枚举)

2.5 如果表的值含义是文字类型,要写上所有的值

如图2 newsType2 注释写法:字段说明 [值1,值2,值3,值4,....] 。 注意值要以中括号表示

2.6 如果表的值含义是其他规则,用小括号进行说明

如图2 tags字段

3 禁止使用ntext、text 和 image作为数据库字段类型

请改用 nvarchar(max)、 varchar(max)和 varbinary(max) 。

微软官方都不推荐使用ntext、text 和 image。
https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/ntext-text-and-image-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15

说明一点:nvarchar(4000) 跟 nvarchar(max) 不是一个东东,nvarchar(数值) 只能是1到4000 双字节长度,而nvarchar(max)是存储2GB长度

https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=sql-server-ver15

你可能感兴趣的:(sqlserver 数据库设计规范)