有意义的主键是需要自己写程序或者建立专门的数据表来生成的,而且生成的规则也是在系统分析的时候就确定好的;对于无意义的主键则根本没有这个必要,下面我列出了一个流程步骤来说明怎样给数据表分配一个主键:
1、数据表一定要有主键,该主键可以是一个或者多个呵呵,废话一句
2、数据表的主键选择首先在该数据表自有的字段中找,依据是该字段或者字段组合可以唯一的标识一条记录,好像也是废话
3、如果在自有字段中实在找不到可以唯一标识一条记录的字段或者字段组合(例如News表)时,需要给表增加一个主键字段,这个增加的主键是无意义的。
4、如果找到一个字段可以唯一的标识一条记录,则该表的主键则为这个字段(例如Orders表),这个主键就是有意义的
5、如果找到一个字段组合可以唯一的标识一条记录,则分为以下两种情况
6、如果该数据表不需要与其他的表进行数据主-外键关联,则该表的主键则为这个字段组合,这个字段组合的主键也是有意义的
7、如果该数据表表需要与其它表产生主-外键关联,这时候也要增加一个主键字段,而把找到的那个字段组合作成唯一索引,原因是多字段主键没法与其它表建立数据关联,这个增加的主键是无意义的。
8、无意义的主键类型在自增的int与guid中选择,选择的依据是是否该数据现在或者以后需要进行表分布,需要分布就选择guid,否则就选择自增int,原因是自增的int没法进行表分布