1
我們有一個用戶表。用戶有很多列表。八達通寶石根據shard_id爲相關模型動態選擇分片
我們想分割關聯模型列出所有用戶停留在數據庫「主」分片上。用戶將得到一個shard_id列,列表將被拆分成不同的數據庫「shard1」,「shard2」。
我們可以增加我們的代碼來訪問使用using
方法正確碎片的清單:
Listing.where(user: current_user).using(current_user.shard_id)
當然,這是一個很大的代碼更改。理想情況下,我們希望用我們現有的關聯語句像這樣只保留:
current_user.listings
,並自動使用current_user.shard_id
引擎蓋下方。
對此有何建議?
,只有當CURRENT_USER和上市都在同碎片的工作。如果用戶位於主分片並且列表位於Shard1上,則不起作用。 current_user將假定該關聯與current_user在同一個分片上。 – Homan