0

Oracle SQL 的新手,我认为这是一个非常直接的问题,但我找不到直接的答案。我的数据库中有一个员工表。其中一列是“emp_state”,用于显示员工居住的州。我还有一个“客户”表和一个“办公室”表,它们也都有一个“州”字段。为了减少数据库中的冗余数据量,我创建了一个“状态”表,其中包含具有相应 ID 的所有状态。我想在提到的其他表中引用此表。在设置我的表时,我应该在相关表中定义什么作为外键?应该是“State_id”还是“State_name”?我希望状态名称出现在运行的任何查询中,而不是状态 ID 对用户来说毫无意义。

谢谢!

4

1 回答 1

2
  • 您应该使用 state_id。joinif上 a INTthen a的速度要快得多VARCHAR
  • 如果你需要这个名字,如果一个州,你应该JOIN放在桌子上并得到它
  • 如果您打算更新州名,那么您需要更新所有相关表。如果您有一个 id,那么您只需要更新 name 列。
  • 您可能不会有两次相同的州名。但如果你这样做呢?然后您必须更改它或在州名称上附加一些奇怪的数字。

所以底线:始终使用 id

于 2012-04-30T21:31:11.257 回答