0

总结: 我需要 [Field_1] 和 [Field_2] 的任意组合是唯一的,并且要强制执行这种唯一性。注意:这不适用于排列 - 这就是困难所在。

深入: 我正在尝试跟踪供应商软件的联系人。我以老式的方式设置了我的数据库,这样供应商记录可能有很多联系人。诀窍是联系人可能彼此相关,并且可能与父供应商记录无关。一个例子:

  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

假设 Gale 是解决我的 SuperBrokenSoftware 问题的合适联系人。

无法使用当前层次结构来跟踪 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; 其中 a, b >= 0

我可以为每个组合计算一个唯一标识符 - 但访问不能强制计算字段的唯一性。

在 Access 中强制执行组合的最佳方法是什么?

提前致谢!!!

4

1 回答 1

0

为具有唯一索引的唯一标识符创建新字段并创建更改前数据宏,该宏应在新字段中插入/更改计算的标识符。

唯一键可以只是 field1 和 field2 的排序连接

于 2016-08-31T04:53:51.887 回答