数据库命名约定
1.数据库表的约定:
总是使用单数名称——Product而不是Products,这是一个普遍适用的约定,因为我们必须给客户解释某种数据库模式,从语法上看,“Product表包含产品”要比“Products表包含产品”好得多。但Northwind数据库并没有遵循这一约定。
给表中的字段采用某种型式的命名约定,我们采用的是表的主键码为<Table>_ID(假定主键码是一个列),字段采用Name,这是考虑到记录的用户友好性,记录本身的文本信息采用Description。采用好的命名约定,则只要看一下数据库中的表,就知道其中的字段主要是干什么的。
2.数据库列的约定:
使用单数名称,而不是复数名称。
链接到另一个表中的列名与该表的主键码名相同,所以,链接到Product表的列名为Product_ID。链接到Sample表的列名为Sample_ID,这并不总是可行的,如果一个表有另一个表的多个引用,这个命名约定就无效了。此时应使用其他方式命名。
日期字段应有一个_ON后缀,例如Modified_ON,按照这种命名约定,如果读取一些SQL输出,很容易从列的名称中知道该列的含义。
记录用户的字段名应有一个_By后缀名,例如Modified_By,这将有助于阅读。
3.约束的约定
如果可能,在约束名中包含表名和列名,例如CK_<TABLE>_<FIELD>。对于person表中的Sex列,其检查约束可以是CK_PERSON_SEX,而product和supplier表之间的外键码可以是FK_PRODUCT_SUPPLIER_ID。
约束类型的前面加一个前缀,例如Age列上的CK_PERSON_AGE_GT0表示年龄应大于0。
如果必须限制约束名的长度,可以在其中包含表名,而不包含列名。在发现有违反约束的情况时,通常很容易知道哪个表出现错误,但有时不容易检查出是哪个列出现了问题。Oracle允许名称的长度为30而这种限制很容易被打破。