データベース設計のNFルールに違反していますか?


8

私はデータベース作成の初心者です...採用Webアプリケーション用に作成する必要があります。

私のアプリケーションは、スクリーニング、試験、および面接をスケジュールし、結果をデータベースに保存する必要があります。

私のデータベーススキーマは次のとおりです。

ここに画像の説明を入力してください

私の問題はapplicant_id、他のテーブルに含まれていることです...試験、面接、試験の種類など。

正規化ルールに違反していますか?もしそうなら、私のデザインを改善するために何をお勧めしますか?


1
ビジネスドメインや企業に関する特定の知識がない人は、データモデルを見て、キー、制約、データ型などについて現実的なアドバイスを提供できるとは思いません。ただし、null許容列は違反している1NFの厳密な解釈。
1

回答:


10

正規化以外に考慮すべきことがいくつかあります。たとえば、AGEの列があります。毎年更新しますか?いつそれを行うかをどのようにして知るのですか?同じことが長年の経験にも当てはまります。

申請者ごとに複数の値を持つ可能性のある列がいくつかあります:学校、コースなど。

また、それらの関係のオプション性を確認することもできます。現在、申請者には関連する試験が必要ですが、試験に申請者が関連付けられている必要はありません。それは、現実の生活の中で物事がどのように機能するかとは逆だと思います。他のすべての関係にも同様の問題があります。

関係を作成した後で関係を読み取ると役立ちます。


1
テーブルと列以外に考慮すべき事項はいくつかあります:)私の国にはデータ保護法(データ保持の時間制限、個人がデータにアクセスする権利があるなど)と雇用主に少なくとも2度考えさせるべき年齢差別法がありますインタビューの段階で誰かの年齢を記録する前。
1

5

申請者のテーブルと他のメインテーブル(主にスクリーニングと試験)の間には、実際には多対多の関係が必要だと思います。スクリーニングがある場合は、複数の応募者(および他のテーブルについても同様の状況)が含まれます。

1人の候補者とのインタビューが表示されますが、複数の候補者との試験またはスクリーニングセッションが表示されます。この場合、スクリーニングと申請者をリンクする関係テーブルが必要になります。

多対多の関係については、こちらをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.