两个表如下:数据库设计外键是在我的数据库
[Employee] Table:
Id (Primary Key, Autoincrement)
FirstName
LastName
Status
[Status] Table:
Status (Primary Key)
状态为下列之一:“全职”“承包商”“终止”
应该如何[雇员] .STATUS参考[Status] .Status作为外键?我看到这样的方法有两种:
- [雇员] .STATUS直接指向[状态] .STATUS
- 我添加ID列[状态]表中,并使其PK /自动增量。然后[Employee] .Status指向[Status] .Id。这意味着我必须进行连接才能获取状态文本。
其他表也可能引用状态表。两种方法之一是“正确的”做事方式还是设计问题?
选项2. maintanability更复杂的表格第三种选择 - 为下面回答说。 – RPM1984 2010-09-20 00:53:08
几个小时前偶然讨论过的同一个主题:[关系数据库设计问题 - 代理键或自然键?](http://stackoverflow.com/questions/3747730/relational-database-design-question-surrogate -key-or-natural-key) – 2010-09-20 00:58:27
[主键的设计标准是什么?](http://stackoverflow.com/questions/3632726/what-are-the-design-criteria-for-primary - 键) – APC 2010-09-20 01:03:51