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中强制执行组合的最佳方法是什么?
提前致谢!!!
答案 0 :(得分:0)
为具有唯一索引的唯一标识符创建新字段,并创建更改前数据宏,该宏应在新字段中插入/更改计算标识符。
唯一键可以是field1和field2的排序串联