招聘系统的数据库结构

时间:2013-12-09 04:48:49

标签: ruby-on-rails

我有点像菜鸟,想要与你们确认我是否在正确的道路上,为工作招聘申请建模。

有用户

每个用户填写详细信息,并录制1个视频。

有工作。

每份工作都有1或2个关于工作的具体问题。 用户通过填写​​1或2个特定问题来申请工作。

基于此,

我们将拥有用户模型。

User模型将具有属性name,email,degree,pref_city等,video_id

用户has_many jobs

然后,就是作业模型。 job belongs_to users

我对这个模型将如何发挥作用感到困惑

每个作业都有job_title,job_desc,salary等,以及custom_question1,custom_question2。

当admin创建作业时,他们将为1和2编写自定义问题。

然后,当用户申请该职位时,他们会回答这些问题。 但是,我会在哪里记录自定义问题的答案?

我是在正确的轨道上吗?

4 个答案:

答案 0 :(得分:2)

我个人会打破job本身的问题和答案,以获得更多的魔法,因为我们确实喜欢我们的元素。

所以看起来更像是这样:

User
  has_many :jobs
Job
  belongs_to :user
  has_many :questions
  has_many :applications
Application
  belongs_to :user
  belongs_to :job
Question
  has_many :answers
  belongs_to :job
Answer
  belongs_to :question
  belongs_to :user

通过这种方式,您可以通过说

来获取给定作业的当前答案列表
@job.questions.first.answers

答案 1 :(得分:1)

我认为你走在正确的轨道上。下面的代码集应该会给你一些想法。听起来像一个很棒的项目。玩得开心!

# user.rb
class User < ActiveRecord::Base
  has_many :jobs # jobs this user posted
  has_many :job_applications
  has_many :user_answers

# job.rb
class Job < ActiveRecord::Base
  has_many :questions
  has_many :job_applications

# question.rb
class Question < ActiveRecord::Base
  has_many user_answers
  belongs_to :job  

# job_application.rb
class JobApplication < ActiveRecord::Base
  belongs_to :user
  belongs_to :job

# user_answer.rb
class UserAnswer < ActiveRecord::Base
  belongs_to :user
  belongs_to :question
  # has a column "answer text..."

答案 2 :(得分:1)

http://bit.ly/1giMQIl

了解有关您项目的更多信息会有所帮助。我走了安全路线并做了几件事:

  • 关于申请的问题可以改变
  • 如果这些问题发生变化,您想要记住用户的答案

答案 3 :(得分:1)

这是作业和用户之间的多对一关系。用户可以申请许多工作,工作可以有很多应用;对?您可以使用以下结构获得更强大的模型:

User
  has_many :jobs, through: :applications

Job
  has_many :users, through :applications
  has_many :questions

Application
  belongs_to :user
  belongs_to :job
  has_many :answers

Question
  belongs_to :job
  has_one :answer

Answer
  belongs_to :application
  belongs_to :question

我真的认为不是将答案链接到用户,而是应该将它们链接到应用程序。