Key-Value 类型的表还需要一个自增键吗?

Cod*_*Cat 1 schema database-design

假设我有一个非常简单的表来存储类似变量的数据,如下所示:

+-----------+-----------------+
|    key    |      value      |
+-----------+-----------------+
| site_url  | helloworld.com  |
| site_name | Hello World     |
| time_zone | Asia Taipei     |
+-----------+-----------------+
Run Code Online (Sandbox Code Playgroud) 我还需要创建一个ID列吗?
或者只是简单地将key列设置为主键
key将是唯一的

Len*_*art 6

始终从识别您的自然键开始,在这种情况下key。如果这些太复杂(太多列)或不够稳定(经常更改),请考虑添加代理键(例如ID您提到的列)。我用于密钥的标准是:

- unique
- stable
- irreducible
- complexity
- familiarity 
Run Code Online (Sandbox Code Playgroud)

在许多情况下,这些标准之间会发生冲突,必须妥协。在某些情况下添加代理键并没有错,但可悲的是许多人通过自动驾驶设计并无论如何都盲目地添加代理键。