2

Setting up the database, I am just curious if I did it correctly, as it looks a bit off. There are people, who have a user account, and a role (teacher or student). they are participants in a class (where a class has many students and teachers; a student has many classes; a teacher has many classes). I think my class_instruction model is off in the DB, but please tell me if it will work, or if there is a better way (like maybe with a has_many_through table of participants)

schema.rb:

ActiveRecord::Schema.define(:version => 20130524160107) do

  create_table "class_instructions", :force => true do |t|
    t.string   "name"
    t.datetime "time"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
    t.integer  "person_id"
  end

  add_index "class_instructions", ["person_id"], :name => "index_class_instructions_on_person_id"

  create_table "people", :force => true do |t|
    t.string   "firstName"
    t.string   "lastName"
    t.integer  "user_id"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  add_index "people", ["user_id"], :name => "index_people_on_user_id"

  create_table "roles", :force => true do |t|
    t.string   "name"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  create_table "user_roles", :force => true do |t|
    t.integer  "user_id"
    t.integer  "role_id"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  add_index "user_roles", ["role_id"], :name => "index_user_roles_on_role_id"
  add_index "user_roles", ["user_id"], :name => "index_user_roles_on_user_id"

  create_table "users", :force => true do |t|
    t.string   "email",                  :default => "", :null => false
    t.string   "encrypted_password",     :default => "", :null => false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          :default => 0
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
  end

  add_index "users", ["email"], :name => "index_users_on_email", :unique => true
  add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true

end

My concern is that the person_id is part of the class. Is this correct?

ClassInsturction.rb :

class ClassInstruction < ActiveRecord::Base
  belongs_to :people
  has_many :cassignments
  has_many :assignments, :through => :cassignments

  def className
    self.name
  end

  def classAssignments
    return self.cassignments
  end
end
4

2 に答える 2

1

クラスと人の両方を持ち、多くのスルーを使用する結合テーブルを作成します。人々が多くのクラスを持ち、クラスに多くの人々がいる場合、これは他の方法ではできません。

于 2013-05-26T16:39:32.770 に答える