我一直在研究数据库应用程序(Access 2007),并且有一些关于架构的问题。到目前为止,这是我编写的最复杂的应用程序。
我目前有5个表,每个表都有自己唯一的ID字段:
同一故障可能出现在多个程序中,并且相同的程序可能出现在多个手册中。我想为用户提供复制和删除记录的机会,以及表之间的交叉链接记录。
目前,我在上面列出的每个表之间都有联接表,
编辑主表之间的关系(通过编辑连接表的内容)变得非常复杂,因为复制和删除操作对其他表具有级联效果。在我看来,这可以使用递归有效地执行,但实际上让它工作是另一个故事。
问题#1:我描述的架构是一种“好”的方式来安排这些数据,还是不必要地复杂化? (我习惯这样做。)
问题2:这是否有“首选”方法?
问题3:我会以不同的方式组织表格会更好,例如:
只有5个表,
每个表都有一个用于其内容字段的键,以及另一个表示其下一个更高表中的父记录的键。例如,
这对我来说似乎更直接,当然也不那么复杂。如果你们都愿意提供一些专业的反馈意见,我将不胜感激。
谢谢!
答案 0 :(得分:0)
您需要使用MS Access'关系工具来设置参照完整性规则。这样,您可以自动级联删除和更新。我会避免“连接表”,因为只要父键在表中(它将被称为外键),它们就是不必要的。