SQL Server数据库设计技巧 sql数据库设计经验
在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,数据与数据之间联系紧密,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,我们构建的数据库不合理、不恰当,那么数据库的维护、运行效率会有很大的问题。这将直接影响到项目的运行性和可靠性。大大小小sql数据库设计必有一些设计的经验可以参考。
1.栏位命名
1)不使用数据库关键字作为栏位名称,如id, level 等;
2)对于系统术语,保持命名一致性;
如人员分机号, 可统一命名ext_no, 而不是某些栏位命名为extension_no, 某些栏位又叫做telphone_no;
3)相同数据性质的栏位, 保持命名一致性
如存储大段文本的栏位,统一用 _desc, _note, _remark等结尾
时间栏位,使用 _on结尾, 如issue_on, approved_on
与特殊阶段或者角色相关的栏位,使用合适前缀, 如 dcc_xxx(dcc为角色)
app_xxx(app为阶段名称)
开关值,统一以 is_开头,或者 _flag结尾
4) 预留栏位命名 segment1, segment2, segment3…
2.表命名
1)使用多段式单词,单词之间用下划线分割;
2)相同性质的表,适用分组前缀。能从命名上看出哪些表属于一组
如实例数据表以instance_开头,instance_form_header, instance_form_approve, 参考数据表以 refer_开头,refer_category, refer_category_items 等;
3)大的系统表名使用 [系统名]_模块名_ 前缀,便于系统间的整合;
4)系统常用的固定表名:
system_config, system_log, system_objects, system_glossary, system_dictionary等;
3.栏位长度
1)保持相同用途栏位的长度一致性;
2)如果最初无法确定栏位长度:
对于字符串栏位:
一般栏位使用默认长度 nvarchar(50)
稍长栏位使用nvarchar(150)
长文本使用 nvarchar(500)
对于浮点数:
使用默认定义 decimal(18, 2)
4.数据类型
1)使用基本的数据类型;
字符串: nvarchar
开关值: nvarchar(1)
整数: int
浮点数: decimal
日期类型: datetime
长文本: ntext (2005 nvarchar(max))
2)保存字符类型的栏位使用nvarchar, ntext, 以支持多国语言存储;
3)尽量不使用自增类型栏位,使用表来管理各个系统对象的自增;
4)开关值统一使用nvarchar(1) , 而不是(tiny)int;
5.值范围设置
1)开关值, 使用 0/1 而不是Y/N
2)全部/特定, 全部使用 * 表示,而不是ALL /none 等
数据库设计是个比较大的工程,所涉及的程序也比较多,数据之间的联系也需要靠程序来实现,因此在进行数据库程序设计时需要把握好程序的使用技巧,多学习学习数据库设计的经验,提升自己的设计技巧。
1.栏位命名
1)不使用数据库关键字作为栏位名称,如id, level 等;
2)对于系统术语,保持命名一致性;
如人员分机号, 可统一命名ext_no, 而不是某些栏位命名为extension_no, 某些栏位又叫做telphone_no;
3)相同数据性质的栏位, 保持命名一致性
如存储大段文本的栏位,统一用 _desc, _note, _remark等结尾
时间栏位,使用 _on结尾, 如issue_on, approved_on
与特殊阶段或者角色相关的栏位,使用合适前缀, 如 dcc_xxx(dcc为角色)
app_xxx(app为阶段名称)
开关值,统一以 is_开头,或者 _flag结尾
4) 预留栏位命名 segment1, segment2, segment3…
2.表命名
1)使用多段式单词,单词之间用下划线分割;
2)相同性质的表,适用分组前缀。能从命名上看出哪些表属于一组
如实例数据表以instance_开头,instance_form_header, instance_form_approve, 参考数据表以 refer_开头,refer_category, refer_category_items 等;
3)大的系统表名使用 [系统名]_模块名_ 前缀,便于系统间的整合;
4)系统常用的固定表名:
system_config, system_log, system_objects, system_glossary, system_dictionary等;
3.栏位长度
1)保持相同用途栏位的长度一致性;
2)如果最初无法确定栏位长度:
对于字符串栏位:
一般栏位使用默认长度 nvarchar(50)
稍长栏位使用nvarchar(150)
长文本使用 nvarchar(500)
对于浮点数:
使用默认定义 decimal(18, 2)
4.数据类型
1)使用基本的数据类型;
字符串: nvarchar
开关值: nvarchar(1)
整数: int
浮点数: decimal
日期类型: datetime
长文本: ntext (2005 nvarchar(max))
2)保存字符类型的栏位使用nvarchar, ntext, 以支持多国语言存储;
3)尽量不使用自增类型栏位,使用表来管理各个系统对象的自增;
4)开关值统一使用nvarchar(1) , 而不是(tiny)int;
5.值范围设置
1)开关值, 使用 0/1 而不是Y/N
2)全部/特定, 全部使用 * 表示,而不是ALL /none 等
数据库设计是个比较大的工程,所涉及的程序也比较多,数据之间的联系也需要靠程序来实现,因此在进行数据库程序设计时需要把握好程序的使用技巧,多学习学习数据库设计的经验,提升自己的设计技巧。