相关疑难解决方法(0)

在关系数据库中查找表的最佳实践是什么?

查找表(或一些人称之为代码表)通常是可以为特定列给出的可能值的集合。

例如,假设我们有一个名为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)

foreign-key database-design best-practices primary-key

16
推荐指数
2
解决办法
1万
查看次数