複数のコンピューターのサービスのリストを保存する必要があります。考えられるすべてのテーブルのリストを保持する1つのテーブル、考えられるすべてのコンピューター用のテーブル、そしてサービスをコンピューターにリンクするためのテーブルを作成すると思いました。
完全なサービスリストを一意に保つことを考えていました。実行可能ファイルのハッシュをサービスの主キーとして使用できる可能性がありますが、これに欠点があるかどうかはわかりません(ハッシュは識別。いかなる種類のセキュリティ目的でもありません)。バイナリフィールドを主キー/外部キーとして使用するのではなく、値をbase 64でエンコードされたsha512として格納し、を使用することを考えていましたnvarchar(88)
。これに似たもの:
CREATE TABLE Services
(
ServiceHash nvarchar(88) NOT NULL,
ServiceName nvarchar(256) NOT NULL,
ServiceDescription nvarchar(256),
PRIMARY KEY (ServiceHash)
)
このソリューションに固有の問題はありますか?(私はSQL 2008データベースを使用し、通常はC#.Net経由でアクセスします)。