我一直在研究一个数据库应用程序(Access 2007)并且有几个关于架构的问题。这是迄今为止我编写的最复杂的应用程序。
我目前有 5 个表,每个表都有自己唯一的 ID 字段:
- 平台
- 车辆
- 手册
- 程序
- 故障
同一个故障可能出现在多个程序中,同一个程序可能出现在多个手册中。我想为用户提供复制和删除记录的机会,以及表之间的交叉链接记录。
目前,我在上面列出的每个表之间都有连接表,
- 平台_车辆
- 车辆手册
- manuals_procedures
- 程序故障
编辑主表之间的关系(通过编辑连接表的内容)变得相当复杂,因为复制和删除操作对其他表有级联影响。在我看来,这可以使用递归有效地执行,但实际上让它工作完全是另一回事。
问题 #1:我描述的架构是安排这些数据的“好”方式,还是不必要地复杂?(我有这样做的习惯。)
问题 #2:是否有“首选”方法来执行此操作?
问题 #3:我最好以不同的方式组织表格,例如:
只有5张桌子,
- 平台
- 车辆
- 手册
- 程序
- 故障
每个表都有一个用于其内容字段的键,以及另一个表示其在下一个更高表中的父记录的键。例如,
- 平台
- 平台ID、平台名称
- 车辆
- 平台ID、车辆ID、车辆名称
- 手册
- 车辆 ID、手册 ID、手册名称
- ...
这对我来说似乎更简单,当然也不那么复杂。如果大家愿意提供一些专业的反馈,我将不胜感激。
谢谢!