0

要約: [Field_1] と [Field_2] の任意の組み合わせが一意であり、その一意性が強制される必要があります。注: これは順列のためのものではありません。それが難点です。

詳細: ベンダー ソフトウェアの連絡先を追跡しようとしています。Vendor レコードに多くの連絡先があるように、昔ながらの方法で DB をセットアップしました。秘訣は、連絡先が相互に関連している可能性があり、親ベンダー レコードに関連していない可能性があることです。例:

  1. SuperBrokenSoftware is a tool who's vendor I need to contact all the time. 
  2. WeMakeBadSoftware is the Vendor
  3. Fred works for WeMakeBadSoftware
  4. Gale works for WeHelpPeopleWhenOthersWont

SuperBrokenSoftware に関する問題を解決するには、Gale が適切な連絡先だとしましょう。

現在の階層を使用して、Gales と SuperBrokenSoftware との関係を追跡する方法はありません。

私の解決策は、次のようなテーブルでこれらの関係を追跡することです。

Field1   Field2   Field3   
Fred     Gale     Gale handles specific issues for Fred

ただし、このソリューションを考えると、Field_1 と Field_2 の組み合わせは一意でなければなりません。つまり、レコードは次のとおりです。

Field1   Field2   Field3
Fred     Gale     "Gale handles specific issues for Fred"
Gale     Fred     "Gale is awesome - Fred sucks"

同一視すべきです。レコード 2 は一意ではないため、データベースでは許可されません。

私が試したこと:

全単射の使用 - Szudzik 関数: a >= b ? a * a + a + b : a + b * b; ここで、b >= 0

すべての組み合わせに対して一意の識別子を計算できますが、アクセスでは計算フィールドに一意性を適用できません。

Access で組み合わせを強制する最良の方法は何ですか?

前もって感謝します!!!

4

1 に答える 1