如何在单个表之间创建关系?

时间:2014-09-27 08:50:33

标签: mysql database database-design

enter image description here

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

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

简要说明每种类型

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

端子:连接器已插入压接线。端子压接在电线上,以形成无焊接接头。当连接器与车辆中的对应设备配对时,这些终端然后与其对应设备配对。

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

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

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

我的目标是:

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

  2. 同样,在查看终端时,我希望所有可以使用的连接器也可以显示。

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

  4. 最后,连接器可以有多个配件,我希望它们也是相关的。

  5. 我是数据库设计的新手,我在树林中看到森林时遇到了麻烦。就个人而言,我认为我应该放弃单表的想法,并使用连接器,密封件和端子的单独表格,并在它们之间建立关系。

    仍然可以回答我如何展示替代品和配件连接器。

1 个答案:

答案 0 :(得分:0)

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

更重要的是,您没有建模您在口头描述中概述的零件和其他零件之间的关系。这些关系可能是您创建的BOMS中固有的,但在这里并不明显。如果您对这些关系进行建模,它是否会使数据库更具功能性?我不知道,随便。

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