0

次のような求人情報用のテーブルがあります。

`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)

さらに、この列を上記のテーブルの 1 つに追加することは、db 構造を非正規化する例になりますか? もしそうなら、なぜですか?

4

1 に答える 1

0

Job_postはJob_applicationに授与されます、それは私が読むことができる概念です。次に、そのロジックを使用して、1つのアプリケーションのみを1つのジョブに付与できる場合、最初のオプションが実行可能です。複数の応募者に求人情報を授与できる場合は、2番目のオプションが正しいオプションです。

于 2012-05-26T19:22:30.217 に答える