我是这样做的:
- 表名是小写,用下划线分隔单词,并且是单数(例如
foo
、foo_bar
等). - 我通常(并非总是)有一个自动递增的PK.我使用以下约定:
tablename_id
(例如foo_id
、foo_bar_id
等). - 当一个表包含一个外键列时,我只需从它来自的任何表中复制该键的列名.例如,假设表
foo_bar
有FKfoo_id
(其中foo_id
是foo
的PK). - 在定义FK以强制引用完整性时,我使用以下公式:
tablename_fk_columnname
(例如,进一步扩展示例3,它将是foo_bar_foo_id
).因为这是一个表名/列名组合,所以保证它在数据库中是唯一的. - 我按如下顺序排列列:PKs、FKs,然后按字母顺序排列其他列
有更好、更标准的方法吗?