我们有一个用户表。用户有很多列表。
我们希望对关联模型列表进行分片,以便所有用户都留在数据库“主”分片上。用户将获得一个 shard_id 列,列表将被分成不同的数据库“shard1”、“shard2”。
我们可以使用以下方法扩充我们的代码以访问正确分片上的列表using
:
Listing.where(user: current_user).using(current_user.shard_id)
但是,这是一个很大的代码更改。理想情况下,我们只想继续使用我们现有的关联语句,如下所示:
current_user.listings
并让它current_user.shard_id
在引擎盖下自动使用。
这样做有什么建议吗?