エンティティの代替名を格納し、データをロールアップする「マスター」レコードにリンクするベストプラクティスは何でしょうか?マスター参照の「代替」名のデータベース設計
たとえば、私は企業のリストを持っています。
id name
1 Orange Kid Industries
2 Apple Kid Inc.
5 O.K.
会社5 O.K.
1 Orange Kid Industries
の代替名です。これらの企業は、子レコードがが1でなく5に結びついている必要がある場合(たとえば会社名が変更された場合は履歴データを保存するため)、慎重に保管する必要があります。
1 Orange Kid Industries
のすべての子を見ると、1と5の子がすべて結合されていることがわかります。5 O.K.
を1 Orange Kid Industries
に戻す必要があります。
すべてのレコードに必要なマスターIDに向かっています。ユーザーが新しい会社6 Moldy Orange Kid Industries
を作成した場合は、マスターIDに1を割り当てて、これが1 Orange Kid Industries
の別の名前であることを示します。
id name master
1 Orange Kid Industries 1
2 Apple Kid Inc. 2
5 O.K. 1
6 Moldy Orange Kid Industries 1
これは、多くの冗長データを必要とせずに最も簡単なルートのようです。このアプローチには欠点がありますか?
Stack ExchangeのQ&A形式は、意見を求める質問には適していません。 [FAQ](http://stackoverflow.com/faq#dontask)を参照してください。 – Oded