我正在构建数据库架构。我也看过this guide 所以我会有以下模型:
作者
name, has_many:questions, has_many:comments, has_many:edits
问题
title, body , author_id, has_many:comments, belongs_to:author
注释
body, question_id, author_id, belongs_to:question, has_many:edits, belongs_to:author
修改
body, comment_id, author_id, belongs_to:comment, belongs_to:author
如您所见,问题可以有很多评论,每条评论都可以有很多编辑。作者可以有很多问题,编辑和评论
主要问题是:我是否正确使用了has_many
和belongs_to
分析?
其他信息: 我不知道它是否相关,但我想使用以下脚手架迁移:
rails generate scaffold Question title:string body:text author_id:integer has_many:comments belongs_to:author
rails generate scaffold Comment body:text question_id:integer author_id:integer belongs_to:question has_many:edits belongs_to:author
rails generate scaffold Edit body:text comment_id:integer author_id:integer belongs_to:comment belongs_to:author
rails generate scaffold Author name:string has_many:questions has_many:comments has_many:edits
UPD:我的脚手架不正确。我应该使用这样的东西:
rails generate scaffold问题标题:string body:text user:references
rails生成脚手架评论正文:文本用户:引用问题:引用
rails生成脚手架编辑正文:文本用户:引用问题:参考
答案 0 :(得分:0)
你的协会和脚手架都是正确的。我建议在所有belongs_to关联之后使用 dependent :: destroy ,所以当例如删除作者时,他的所有问题都会从你的数据库中删除。
例如:
Class Question < ActiveRecord::Base
belongs_to :author, dependent: :destroy
end
这样你就可以避免数据库中出现大问题。