我正在尝试基于一个单独的表(父表)构建几个表:想法是所有子表的前3列与父表相同,并且每个子表都有更多信息提供。无论父表中所做的任何更改都将反映在子表中。例如,如果父表中的前一行是harry True True更改为Harry True Sad,则子表也将更改。此外,如果删除父表中的记录,则还将删除子表中的相应行。创建父表中的新记录,子表还将生成反映更新的一行记录。
我认为Access中的一对一关系将是实现这一目标的好方法。这是否可行,因为我对数据库没有太多的理论上的理解。谢谢。
答案 0 :(得分:0)
是的,这正是关系应该如何运作的,因此您不必在每个相关表上重复3列。
Parent
ID(PrimaryKey) C1 C2 C3
Child1
ID(PrimaryKey) C4 C5
Child2
ID(PrimaryKey) C6 C7
至于删除,如果您选中CASCADE DELETE
框,则可以选择Enforce Referencial Integrity
完全符合您的目的。
然而,关系是1对1还是1对N,很大程度上取决于您正在构建的数据库。
如果是1比1,则对于相同的记录,主键应该相同。否则,您应在子表中包含RelatedParentId (ForeignKey)
字段。