查找表 - 我应该使用 id 列还是只使用值?

atk*_*yla 3 sql postgresql database-design

我有很多查找表,如下所示:

id(pk) type(unique)
---
1 UNIVERSITY OF ARIZONA
2 UNIVERSITY OF MIAMI
3 TOKYO UNIVERSITY
Run Code Online (Sandbox Code Playgroud)

假设type在所有情况下都是唯一的字符串。

我在质疑我是否应该使用id(pk)或只是这样做:

type(pk)
----
UNIVERSITY OF ARIZONA
...
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

您应该使用主键。以下是一些原因:

  • 对于连接来说,整数通常比字符串更有效。
  • 从存储的角度来看,整数肯定更有效——字符串比数字长。
  • 有一天您可能想更改名称,例如,'UNIVERSITY OF ARIZONA (TUCSON)'
  • 主键确实是外键关系所期望的。

  • 此外,整数不必处理小写与大写、拼写差异、前导和/或尾随空格等等...... (4认同)