你自己已经掌握了大部分的方法。假设选项都是独立的(即,只有当另一个选项已设置时,一个选项才变得可设置),此外,选项的状态是“是”或“否”而不是潜在的“未知”(与“否”不同') 相反,您可以这样做:
Entries
桌子
FIELD NAME DATA TYPE ATTRIBUTES
EntryID AutoNumber PK; required
EntryName Text Unique; required
Options
桌子
FIELD NAME DATA TYPE ATTRIBUTES
OptionID AutoNumber PK; required
OptionName Text Unique; required
EntryOptions
桌子
FIELD NAME DATA TYPE ATTRIBUTES
EntryOptionID AutoNumber PK; required
EntryID Number FK to Entries.EntryID: required
OptionID Number FK to Options.OptionID; required
Unique index combining EntryID and OptionID
EntryOptionText
桌子
FIELD NAME DATA TYPE ATTRIBUTES
EntryOptionID Number PK; FK to EntryOptions.EntryOptionID; required
OptionText Text Required
我不确定您的“选项 1”、“选项 2”等是否只是标记,但无论哪种方式,设置一个“显示名称”字段是明智的,因为自动编号字段看起来只是一个计数器(一旦您开始删除中间的记录,它就会变得不连续)。
外键
您可能很清楚,这些是使用向导或在 Access 的“关系”窗口中设置的:
Entries
将有一个一对多的关系EntryOptions
Options
将有一个一对多的关系EntryOptions
EntryOptions
将具有一对一的关系EntryOptionsText
我个人觉得EntryOptionsText
有点矫枉过正 - 我只是OptionsText
在EntryOptions
.
唯一索引
在每个显示名称字段上创建唯一索引的理由很明显。关于我建议反对的一个EntryOptions
,即同时涵盖EntryID
and OptionID
,这将是您的“额外扭结”的解决方案,防止多个记录具有相同的EntryID
/OptionID
组合。
设置单字段索引很简单,因为在设计表格时您面前有“索引”字段属性(将其设置为“是(无重复)”)。对于涵盖两个字段的索引,请转到“设计”功能区选项卡,选择“显示/隐藏”>“索引”,然后显式创建索引(请参阅https://support.office.com/en-gb/article/Create-and-use-an -index-to-improve-performance-0a8e2aa6-735c-4c3a-9dda-38c6c4f1a0ce)。