将每个人的意见汇总到一个列表中。
模式按功能区域(产品,订单,运输)命名
没有匈牙利语符号:对象名称中没有类型名称(没有strFirstName)
对象名称中没有空格或任何特殊字符(仅允许使用字母数字和下划线)
以自然方式命名对象(用FirstName代替NameFirst)
表名称应与主键名称和描述字段匹配(SalesType ― SalesTypeId,SalesTypeDescription)
不要以tbl_或sp_作为前缀
按对象名称的名称代码(CustomerSearch,CustomerGetBalance)
列名应为单数
表名可以是复数
为所有限制提供公司名称(MustEnterFirstName)
在表之间使用相同的变量类型(在一个表中使用邮政编码-数字,在另一个表中使用varchar并不是一个好主意)
使用nNVarChar获取客户信息(名称,地址)等,您永远不知道何时会跨国公司
关键字始终大写
从不使用隐式联接(逗号语法)-始终使用显式的INNER JOIN / OUTER JOIN
每行一个JOIN
每行一个WHERE子句
没有循环-替换为基于集合的逻辑
对别名使用简短的表名形式,而不是A,B,C
除非没有追索权,否则避免触发
避免像瘟疫这样的游标(请阅读http://www.sqlservercentral.com/articles/T-SQL/66097/)
创建数据库图
创建数据字典
尽可能使用单列主键。在需要时使用唯一约束。
参照完整性将始终得到执行
避免ON DELETE CASCADE
OLTP必须至少为4NF
将每个一对多关系评估为潜在的多对多关系
构建基于插入的模型,而不是基于更新的模型
PK到FK的名称必须相同(Employee.EmployeeId与EmployeeSalary.EmployeeId相同的字段)
除非有双重联接(Person.PersonId联接到PersonRelation.PersonId_Parent和PersonRelation.PersonId_Child)
不含表的架构
孤记录
没有主键的表
没有索引的表
非确定性UDF
备份,备份,备份
始终如一
修正错误, 现在
阅读Joe Celko的sql编程样式(ISBN 978-0120887972)