tblGlobalIDMapping
すべてのエントリに GUID を割り当て、他の 3 つのプライマリ ID をアプリ全体に保存して、単一の ID リポジトリを提供するという名前のプライマリ DB に単一のテーブルを作成しました。
新しいテーブルは次の構造にあります -->
AppGlobalID uniqueidentifier NoNulls
PersonID int NoNulls
DRIMaster int Nulls
DRIClient int Nulls
必要な情報は、次の部分構造を持つ別の DB (同じサーバー) のテーブルにあります -->
PersonID int NoNulls
ApplicationID tinyint NoNulls
PersonApplicationID varchar(14) NoNulls
個人 (ID# 13579) は、アプリケーションごとに 2 番目のテーブル 1 に表示されます。ApplicationID 列には、DRIMaster の場合は 1、DRIClient の場合は 6 の数値が格納され、PersonApplicationID の ID# の目的を示します。
そのテーブルから新しいテーブルに一括コピー/挿入を行う必要がありますが、新しいテーブルに 3 つのメイン ID を記録する 1 行だけが必要です。
これは私がこれまでに持っているものですが、これは PersonID ごとに行を返します。
SELECT PersonID,
CASE
WHEN ApplicationID = 1
THEN PersonApplicationID
END AS 'DRIMaster',
CASE
WHEN ApplicationID = 6
THEN PersonApplicationID
END AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)
これは以下を返します -->
PersonID DRIMaster DRIClient
_______________________________
108574 71163 NULL
108574 NULL 71163