1

我们有一个用户表。用户有很多列表。

我们希望对关联模型列表进行分片,以便所有用户都留在数据库“主”分片上。用户将获得一个 shard_id 列,列表将被分成不同的数据库“shard1”、“shard2”。

我们可以使用以下方法扩充我们的代码以访问正确分片上的列表using

Listing.where(user: current_user).using(current_user.shard_id)

但是,这是一个很大的代码更改。理想情况下,我们只想继续使用我们现有的关联语句,如下所示:

current_user.listings

并让它current_user.shard_id在引擎盖下自动使用。

这样做有什么建议吗?

4

1 回答 1

0

根据文档,current_user.listings应该开箱即用。

Octopus 还处理关联。当您尝试获取与另一个对象关联的对象时,您可以使用正常的 ActiveRecord 语法来获取对象

https://github.com/thiagopradi/octopus/wiki/How-Octopus-Works

于 2016-05-18T17:18:29.080 回答