0

我一直在研究一个数据库应用程序(Access 2007)并且有几个关于架构的问题。这是迄今为止我编写的最复杂的应用程序。

我目前有 5 个表,每个表都有自己唯一的 ID 字段:

  • 平台
  • 车辆
  • 手册
  • 程序
  • 故障

同一个故障可能出现在多个程序中,同一个程序可能出现在多个手册中。我想为用户提供复制和删除记录的机会,以及表之间的交叉链接记录。

目前,我在上面列出的每个表之间都有连接表,

  • 平台_车辆
  • 车辆手册
  • manuals_procedures
  • 程序故障

编辑主表之间的关系(通过编辑连接表的内容)变得相当复杂,因为复制和删除操作对其他表有级联影响。在我看来,这可以使用递归有效地执行,但实际上让它工作完全是另一回事。

问题 #1:我描述的架构是安排这些数据的“好”方式,还是不必要地复杂?(我有这样做的习惯。)

问题 #2:是否有“首选”方法来执行此操作?

问题 #3:我最好以不同的方式组织表格,例如:

只有5张桌子,

  • 平台
  • 车辆
  • 手册
  • 程序
  • 故障

每个表都有一个用于其内容字段的键,以及另一个表示其在下一个更高表中的父记录的键。例如,

  • 平台
  • 平台ID、平台名称
  • 车辆
  • 平台ID、车辆ID、车辆名称
  • 手册
  • 车辆 ID、手册 ID、手册名称
  • ...

这对我来说似乎更简单,当然也不那么复杂。如果大家愿意提供一些专业的反馈,我将不胜感激。

谢谢!

4

1 回答 1

0

您需要使用 MS Access 的关系工具来设置参照完整性规则。这样,您可以自动级联删除和更新。我会避免“连接表”,因为只要父键在表中(称为外键),它们就是不必要的。

于 2012-08-01T17:05:48.940 回答