查找表(或一些人称之为代码表)通常是可以为特定列给出的可能值的集合。
例如,假设我们有一个名为party
(用于存储有关政党的信息)的查找表,它有两列:
party_code_idn
,它保存系统生成的数值,并且(缺乏业务领域含义)用作真实键的代理。party_code
, 是表的真实或“自然”键,因为它维护具有业务领域内涵的值。让我们说这样的表保留了以下数据:
+----------------+------------+
| party_code_idn | party_code |
+----------------+------------+
| 1 | Republican |
| 2 | Democratic |
+----------------+------------+
Run Code Online (Sandbox Code Playgroud)
在party_code
列,这使价值“共和”和“民主”,在工作台的真正的关键,是建立了一个独特的约束,但我需要添加的party_code_idn
,它定义为表(的PK虽然,从逻辑上说,party_code
可以作为 PRIMARY KEY [PK])。
指向事务表中的查找值的最佳实践是什么?我应该建立外键 (FK) 引用(a)直接指向自然和有意义的值还是(b)代理值?
选项(a),例如,
+---------------+------------+---------+
| candidate_idn | party_code | city |
+---------------+------------+---------+
| 1 | Democratic | Alaska |
| 2 | Republican | Memphis …
Run Code Online (Sandbox Code Playgroud)