如果我有User
表(以全局id
为主键),则基于{{在10个数据库(DB1
- DB10
)之间进行分片1}},另一个表尝试使用username
表行的全局User
来引用User
表,我无法知道哪个DB(1-10)用户位于。
这个问题的解决方案是什么?
答案 0 :(得分:1)
或者:
更改分片方案,以便根据用于查找此数据的密钥进行分片。如果是ID,则始终按ID进行,并按ID分类(DB = ID%10)
将User
表的主键设为username
。强制执行其唯一性,并将username
用作其他表中的外键,而不是合成标识符。
创建一个可以引用的查找表,将id
映射到分片。