2014-09-27 77 views
0

enter image description here如何在单个表格之间创建关系?

我在MySQL数据库中设计了上述表格。数据库的主要目的是为数据库创建物料清单并强制对这些物料清单进行修订控制。

零件表遵循单表继承,并具有3种不同类型的零件:连接器,端子,密封件。

附图说明每个类型

连接器:这些是在制造汽车线束的用于汽车级连接器。

终端:连接器已插入压接线。将端子压接到电线上以形成无焊接接头。当连接器与车辆中的对应部件配合时,这些终端与其对应部件配合。

密封:这些是特殊类型的密封插入电线,以防止水/灰尘通过互连。

连接器可用于多种类型的端子,端子也可用于多种类型的连接器。

连接器和密封件之间的关系是相似的。印章和终端没有任何关系。

我的目标是什么了:

  1. 如果用户浏览某些部分,我想以显示它的所有相关/相关部件。例如,如果Connector id 1可以与5种不同类型的终端一起使用,我希望所有这些终端都显示在视图中。

  2. 同样,当查看终端时,我希望所有不同的连接器可用于显示。

  3. 此外,连接器可以有替代部分,我也想说。这是一个一对多的关系,因为连接器可以有多个替代品。

  4. 最后,一个连接器可以有多个相对部分,我希望这些也是相关的。

我是新来的数据库设计,我无法通过树看到森林。就我个人而言,我认为我应该抛弃Single Table的想法,并为连接器,密封件和终端设备使用单独的表格,并绘制它们之间的关系。

这仍然回答我如何显示替代品和配对连接器。

回答

0

如果您正在寻找单表继承的替代方法,请查找类表继承。在你的情况下,这将意味着四个表代替零件:零件,连接器,密封件和端子。如果最后三个表中的每一个都使用part表中的共享主键,那么您将强制执行“is-a”关系的1对1性质,但不是相互排斥的特性。

更重要的是,您尚未模拟您在口头描述中概述的零件和其他零件之间的关系。这些关系可能是您创建的BOM中固有的,但在这里并不明显。如果你模拟这些关系,它会使数据库更加有效吗?我不知道。

如果您在查看树林时遇到问题,可能是因为您正在试图设计解决方案而未分析问题。我发现使用ER模型分析主题很方便。这将主题分解为实体,关系和属性,但没有提及任何有关表格设计的内容。提示:尽管您使用ER图表约定,但您的模型是关系模型,而不是ER模型。再次,根据我的经验,一旦我有描述问题的ER模型,就很容易(虽然很乏味)设计一个设计解决方案的关系模型。

相关问题