我无法确定行中的哪一个DB仅来自全局标识符

时间:2011-07-21 00:36:59

标签: mysql sql-server database postgresql sharding

如果我有User表(以全局id为主键),则基于{{在10个数据库(DB1 - DB10)之间进行分片1}},另一个表尝试使用username表行的全局User来引用User表,我无法知道哪个DB(1-10)用户位于。

这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

或者:

  1. 更改分片方案,以便根据用于查找此数据的密钥进行分片。如果是ID,则始终按ID进行,并按ID分类(DB = ID%10)

  2. User表的主键设为username。强制执行其唯一性,并将username用作其他表中的外键,而不是合成标识符。

  3. 创建一个可以引用的查找表,将id映射到分片。