要約: [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 で組み合わせを強制する最良の方法は何ですか?
前もって感謝します!!!