在字段中实施独特的组合关系

时间:2016-08-31 00:29:55

标签: database validation ms-access combinations enforcement

Summery:我需要[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中强制执行组合的最佳方法是什么?

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

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

唯一键可以是field1和field2的排序串联