【发布时间】:2016-11-30 16:19:02
【问题描述】:
我想创建一个查找表'orderstatus'。即下面,只是为了澄清这将在数据仓库中使用。如果需要,我将需要通过 OrderStatus 加入以检索 INT(如果我创建一个)以在其他地方使用。例如在事实表中,我会将 int 存储在事实表中以链接到查找表。
+------------------------+------------------+
| OrderStatus | ConnectionStatus |
+------------------------+------------------+
| CLOSED | APPROVE |
+------------------------+------------------+
| COMPLETED | APPROVE |
+------------------------+------------------+
| FULFILLED | APPROVE |
+------------------------+------------------+
| CANCELLED | CLOSED |
+------------------------+------------------+
| DECLINED | CLOSED |
+------------------------+------------------+
| AVS_CHECK_SYSTEM_ERROR | CLOSED |
+------------------------+------------------+
就主键/唯一键而言,最佳做法是什么?我应该创建一个 OrderStatusKey INT 作为具有身份的 PrimaryKey 吗?还是对订单状态创建唯一约束(唯一)?谢谢。
【问题讨论】:
-
如果
OrderStatus列将在许多表中被引用,那么我将使用带有主键的Identity列并在其他表中引用它。也检查这个问题stackoverflow.com/questions/3162202/… -
你应该读一读。 agiledata.org/essays/keys.html.
标签: sql sql-server sql-server-2012