假设我有以下表格:
任务表:
Task ID, Task Name, Capability ID
功能表:
Capability ID, Capability Name
应用表:
App ID, App Name, App File
组件表:
Component ID, Model, Manufacturer, Revision
哪里:
- 我希望任务具有一个关联的功能。
- 每个功能都由一组特定组件组成,并在这些组件上运行一组特定的应用程序。
例如,我们有使用功能1的任务1。功能 1 要求:
- 运行 {App1 和 App2} 的组件 1
- 组件 2 运行 {App2}
因此,为了解决这个问题,我制作了一个链接表,如下所示:
功能部件:
Capability ID, Component ID, App ID
其中所有三列都构成主键。感觉这需要进一步拆分,但我看不出如何做到这一点(或者是否需要(。我想我已经满足数据库正常形式 1-3。
这是正确的(就数据库规范化而言(还是我可以进行一些进一步的优化?
根据您的描述,功能、应用和组件之间存在多对多关系。 鉴于此,据我所知,您描述的三列链接表是完全合理的。