まず、すべての属性/フィールドを更新できるようにしたいのですが、単一の一意のキーはありません。各 PC を PC1/PC2/PC3 として分類でき、例を挙げられず、各 PC にネットワークとソフトウェア情報があるような階層があります。デザインと作例は
Parent Table PC(EmpName, PCName, HostName,.... PhysicalLocation, PCType)
EMPName,PCName,PCType
組み合わせると、このテーブルがユニークになります。
記録例('XYZ', 'Work Laptop','XYZ-PC',.....,'DESK-123','PC1')
子テーブルPCNetwork(EmpName, PCName, HostName,IPAddr,....,PhysicalLocation,PCType)
example record1 ('XYZ', 'Work Laptop','XYZ-PC','0.0.0.0',....,'DESK-123','PC1')
example record2 ('XYZ', 'Work Laptop','XYZ-PC','0.0.0.1',....,'DESK-123','PC1')
すべてのフィールドを変更可能にしたいので、両方に Surrogate Key Id 列を追加しました。PC-Id をネットワーク テーブルへの FK として使用しましたが、挿入中に、PC テーブルから ID を取得するクエリを作成する必要があります。
2 つの問題があります。自然/複合キーを使用すると、主キーの更新を許可しない Asp.Net Gridview を介して更新が行われるため、すべてのレコードを更新できません。
サロゲート キーを使用すると、レコードが重複する可能性があり、それらを参照したり、他のフィールドに外部キー制約を設定したりすることはできません。これらは 3 つのフィールドすべてを結合することによってのみ一意になるためです。
SQL Server 2008 と ASP.Net 4.0 を使用しています
私は確かに何かが欠けています.誰かがこれを助けたり、良いデザインを提案したりできます. ありがとう!!