三个表,用于分布式图书馆系统:
Class Book # model: id, name, auhtor
has_many :book_belongs
has_many :owners, through: :book_belongs, source: :user
Class User # model: id, name, email, facebook_uid, facebook_friends
has_many :book_belongs
has_many :ownedbooks, through: :book_belongs, source: :book
Class BookBelong # model: user_id, book_id
belongs_to :user
belongs_to :book
@user.facebookfriends 是一个(序列化)散列,包含用户 facebook 朋友的 facebook_id 和 facebook_name
我在设计 ruby/rails activerecord 查询时遇到问题:
- 返回 facebook 好友拥有的书籍。
在“英语”中,查询应该查看图书所有者 facebook_id 并匹配用户 facebook_friends 哈希。
- 有没有更好的方法来设计表/数据模型以使其更简单且计算成本更低?