0
我想知道我对代理键的理解是否正确。需要高级帮助来验证我对关系数据库设计中关于代理键的理解
E.g:
下面是我的示例数据库设计
Customers Table
| id(PK) | Name | Age |
| 1 | John | 34 |
| 2 | Doe | 30 |
QrCodes Table
| id(PK) | QRcode | Tracking No. | CustomerID (FK)
| 1 | QR123 | TR901111 | 1
| 2 | QR345 | TR902222 | 2
Redemptions Table
| id(PK) | Name | Tracking No. | CustomerID(FK)
| 1 | Redemption 1 | TR901111 | 1
| 2 | Redemption 2 | TR902222 | 2
| 3 | Rdemption 3 | TR902222 | 2
正如你所看到的,我有两个跟踪号列,一个用于qrcodes表&一个赎回表。因此,我可以通过追踪找到所有Qrcodes &赎回的查询。
跟踪编号栏可以分类为代理键吗?或者那是不正确的?
否。假设跟踪号码是唯一且永久的,那么在QrCodes表中id列是代理,而跟踪编号是。是一个独特的[自然]键 – Strawberry
我不明白这一点先生。这是否意味着QrCodes表中的id列不可见/正在系统中使用? –
外键总是应该引用主键 – Strawberry