私は初心者のデータベース管理者で、ハードウェア インベントリ スプレッドシートを取得して SQL サーバーに移行するプロジェクトに取り組んでいます。現在、データは 1 つの大きな非正規化ビューとして存在します。3NFを実現しようとしているのですが、なんとなくうまく設計できていない気がします。
状況の概要を簡単に説明します。
- 学区には複数の建物があり、複数の部屋があります。学校は拡張期を迎えているため、新しい部屋が常に「構築」されているため、「部屋番号」を主キーとして使用できないため、代理キーを使用するようになりました。
- 教師は部屋に割り当てられますが、部屋には必ずしも教師がいる必要はありません (つまり、ラボ)。先生も部屋を変えることができます。
- ハードウェアを購入すると、バーコード番号が付与されます (PO の項目番号と考えてください)。実際のハードウェアは、シリアル番号で識別されます。
- ハードウェアは部屋に割り当てられ、ワークステーション番号と IP アドレスが割り当てられます。
デザインはしっかりしているように見えますか、それとも欠陥がありますか? また、1 対多の関係の間でジャンクション テーブルを作成しても問題ありませんか (特定のハードウェアが部屋に割り当てられ、部屋には多くのハードウェアがある場合があります)。
以下のリンクを見つけてください。