我需要在一个列中存储多个值。单表列是指多个主键
例如我创建表,其保持用户偏好
例如
| user_id | cities | countries |
|---------|------------|------------|
| 1 | 10, 11, 23 | 21, 34 |
,因为我无法将它们存储为阵列(或不情愿存储为列,即使它是可用 - 由于维护和性能方面的原因 - 和更好的关系数据库管理系统的设计),我要创建一个这样
| user_id | type | reference_id |
|---------|---------|--------------|
| 1 | CITY | 10 |
| 1 | CITY | 11 |
| 1 | CITY | 23 |
| 1 | COUNTRY | 21 |
| 1 | COUNTRY | 34 |
在此列引用ID是指主表像城市,国家等映射表
这里的问题,我看到的是
- 我不能有FK参考城市或国家表,因为单reference_id列可能指城市或国家取决于类型
- 因为我不能有FK,我们不能保证,我们不能有脏数据
有没有更好的方法?
注:
- 我已经给城市/国家为样本,但我需要大约有20列可有像城市或国家
- 多个值在将来,我可能会出台一些布尔偏好像“你是否喜欢旅行”,所以我可能想将TYPE存储为“TRAVEL”并将referece_id存储为0,对于是1存储不存在;这肯定不会有任何引用