我正在使用ruby on rails建模在线图书。这本书有章节,每章都有页面。建模这部分很容易。我喜欢做的是跟踪每个用户阅读的页面以及他们是否喜欢该页面/用户是否完成了该书。如何建议建模在轨道中跟踪这个?我理想上喜欢说给我所有用户正在阅读的书籍,然后可以访问该书以及该用户阅读该书的状态信息。
答案 0 :(得分:0)
BookState成为用户和书之间的中间对象。
class User < ActiveRecord::Base
has_many :book_states
has_many :books, :through => :book_state
end
class BookState < ActiveRecord::Base
belongs_to :user
belongs_to :book
end
class Book < ActiveRecord::Base
has_many :book_states
end
BookState有当前位置,喜欢/不喜欢等。如果你要求用户的书籍状态,那也会给你书。
答案 1 :(得分:0)
这很有道理。我看到的一个问题是收集一个问题的统计数据(这个答案的百分比是多少)?既然这些数据是序列化的哈希?那怎么样:
book
has_many user_books
has_many users through user_books
has_many chapters
chapter
belongs_to book
has_many pages
page
belongs_to chapter
has_many user_pages
user
has_many user_books
has_many books through user_books
user_book
belongs_to user
belongs_to book
has_many user_pages
user_page
belongs_to user_book
belongs_to page
你怎么看?