データベースでルックアップテーブルを使用するタイミングと場所に適切な境界を設定する方法を正確に把握するのに苦労しています。私が見たほとんどの情報源は、あまり多くのデータを保持することはできないと言っていますが、ある時点で、データベースは非常に多くの部分に分割されるように見えるため、効率的ではあるが、管理できなくなります。ここに私が取り組んでいるもののスローされた例があります:
Employeesというテーブルがあるとします。
ID LName FName Gender Position
1 Doe John Male Manager
2 Doe Jane Female Sales
3 Smith John Male Sales
データがより複雑で、数百の行が含まれていると仮定します。ルックアップテーブルに移動できる最も明らかなものは、Positionです。Positionsというテーブルを作成し、Positionsテーブルの外部キーをPositions列のEmployeesテーブルに貼り付けることができます。
ID Position
1 Manager
2 Sales
しかし、情報が管理不能になる前に、どの程度まで情報を小さなルックアップテーブルに分解し続けることができますか?別のルックアップテーブルで、性別テーブルを作成し、1を男性に、2を女性に対応させることができます。LNameとFNameをテーブルに入れることさえできました。すべての「John」エントリは、ID 1がJohnに対応することを示すFNameテーブルを指す外部キー1に置き換えられます。ただし、このウサギの穴をあまりにも下に移動すると、Employeesテーブルは大量の外部キーになります。
ID LName FName Gender Position
1 1 1 1 1
2 1 2 2 2
3 2 1 1 2
これは、サーバーの処理が効率的である場合とそうでない場合がありますが、これを維持しようとしている通常の人には間違いなく読めず、アプリケーション開発者がアクセスしようとするのが難しくなります。だから、私の本当の質問は、どこまで遠すぎるのですか?この種のことに対する「ベストプラクティス」または適切な一連のガイドラインはどこかにありますか?私が現在抱えているこの特定の問題について、有用で有用な一連のガイドラインを実際に特定する情報をオンラインで見つけることはできません。データベース設計は私にとって古い帽子ですが、良いデータベース設計は非常に新しいので、過度に技術的な答えが頭上にあるかもしれません。助けていただければ幸いです!