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
将是唯一的
始终从识别您的自然键开始,在这种情况下key
。如果这些太复杂(太多列)或不够稳定(经常更改),请考虑添加代理键(例如ID
您提到的列)。我用于密钥的标准是:
- unique
- stable
- irreducible
- complexity
- familiarity
Run Code Online (Sandbox Code Playgroud)
在许多情况下,这些标准之间会发生冲突,必须妥协。在某些情况下添加代理键并没有错,但可悲的是许多人通过自动驾驶设计并无论如何都盲目地添加代理键。