两个相关表的优先数据库设计

时间:2012-05-26 19:14:54

标签: mysql sql

我有一张工作岗位表,如:

`job_post`
  - name
  - position

`job_application`
  - profile (FK)
  - job_post (FK)  

换句话说,有人发布了一份工作job_post,而且人们可以申请这项工作job_application

我希望增加一项奖励个人工作的能力。例如,如果用户1-10申请了水管工的职位,则该职位可以授予用户6。

我应该在哪里添加授予项目的概念?我不想为这么小的东西添加额外的表格。哪个更好 -

选项1 - 在job_post上:

`job_post`
  - name
  - position
  - awarded_to (FK to profile, else Null if hasn't been awarded yet)

选项2 - 在job_application上:

`job_application`
  - profile (FK)
  - job_post (FK)  
  - awarded (boolean field, default = 0, if awarded = 1)

此外,将此列添加到上述表之一是否是对db结构进行非规范化的示例?如果是这样,为什么?

1 个答案:

答案 0 :(得分:0)

Job_post将被授予Job_application,这是我能读到的概念。然后,根据该逻辑,如果只有一个应用程序只能被授予一个作业,则第一个选项是可行的。如果有多个申请人可以获得工作岗位,那么第二个选项是正确的。