如何在rails中正确维护数据库架构?

时间:2018-05-02 21:00:20

标签: ruby-on-rails ruby-on-rails-5 database-schema table-relationships

我有这样的架构:

$(window).location

在此架构中,帖子和用户都是相互关联的。

所以我的第一个问题:这样做是否正确?

假设其中一个用户在他的专栏中添加了4级(cls = 4)而另一个用户添加了相同的等级。现在,我在两个不同等级ID的等级表中具有相同的cl值。那么这个模式中是否有任何数据冗余?

1 个答案:

答案 0 :(得分:0)

当我完成你的任务时,你可以选择这样的解决方案:

  1. grades - >没有参考(现在就是这样)
  2. user_grades(将此表命名的传统方式为grades_users ...字母顺序,两者均为复数形式 - > user_idgrade_id(现在就是这样)
  3. 您不需要post_grades。这是多余的
  4. posts - > grade_iduser_id(如果您需要作者)
  5. 你的schema.rb看起来像是:

    create_table "users", force: :cascade do |t|
      ...
    end
    
    create_table "grades_users", force: :cascade do |t|
      t.integer "user_id"
      t.integer "grade_id"
      ...
    end
    
    create_table "grades", force: :cascade do |t|
      ...
    end
    
    create_table "posts", force: :cascade do |t|
      t.integer "user_id", null: false
      t.integer "grade_id", null: false
      ...
    end