複数のデータベーステーブル間で一意のIDフィールドを維持するための最良の方法は何ですか?
私のデータベースには企業と人の両方が含まれており、両方のエンティティに一意のIDフィールドが関連付けられている必要があります。さらに、IDを外部キーとして使用して、企業または個人のいずれかを参照できる他のテーブル(たとえば、住所)があります。
私が考えているいくつかのアイデアは次のとおりです。
行が挿入されたときに計算される非自動番号IDフィールドを使用します。これで一意であるという私の問題は解決しますが、関連するプロパティ(住所など)で何かを検索したいときはいつでも、探しているレコードが含まれている両方のテーブルをチェックする必要があります。
オートナンバーIDにプレフィックスを追加して、IDを検索するテーブルを識別します。ただし、関連付けられたテーブルのIDフィールドは、おそらく文字列になるか、関連付けられているテーブルのフラグが含まれるため、どのようになるかわかりません。パフォーマンスに影響します。
PeopleandBusinessesを1つのテーブルにマージします。これに関する私の問題は、人と企業が異なるプロパティを持ち、別々のフィールドを必要とすることです。私は別々のエンティティに別々のテーブルを持っていることを好むので、この種は私の性質に反します。
一意のIDフィールド、個人または企業のIDフィールド、およびどちらであるかを示すフラグを含むマスターテーブルを作成します。次に、そのIDを外部参照番号および関連するすべてのテーブルで使用します。
私はdbaではないので、私が気付いていないこれを処理するいくつかのより良い方法
私が使用するソリューションが何であれ、多数のレコードを簡単に処理できる必要があり(これが置き換えるデータベースには数百万のレコードがあります)、MSSqlServer上にあります