首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单个表之间创建关系?

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

Stack Overflow用户
提问于 2014-09-27 08:50:33
回答 1查看 273关注 0票数 0

我现在正在设计的数据库中有上面的表,在MySQL中。该数据库的主要目的是为数据库创建材料清单,并加强对这些材料清单的修订控制。

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

每种类型的简介

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

终端:连接器中插入了卷曲的电线。终端被卷曲在电线上,以建立无焊点.当连接者在一辆车中与其对应者交配时,这些终端就会与相应的终端交配。

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

连接器可以与多种类型的终端一起使用,也可以与多种类型的连接器一起使用。

连接器和密封之间的关系是相似的。封口和终端没有关系。

我的目标是:

  1. 如果用户正在浏览某个部件,我希望视图显示所有与其相关/相关的部分。例如,如果连接器id 1可以与5种不同类型的终端一起使用,我希望所有这些终端都显示在视图中。
  2. 类似地,在查看终端时,我也希望它能与显示的所有不同的连接器一起使用。
  3. 此外,连接器可以有替代部件,我也想说明这一点。这是一对多的关系,因为连接器可以有多个替代品。
  4. 最后,一个连接器可以有多个反部件,我希望它们也是相关的。

我对数据库设计很陌生,我很难从树林中看到森林。就我个人而言,我认为我应该放弃单一表格的想法,用单独的表格来连接,密封和终端,并制定它们之间的关系。

这仍然回答了我如何可以显示替代品和反部件连接器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-27 10:15:09

如果您正在寻找单表继承的替代方案,请查找类表继承。在您的例子中,这意味着四个表代替了部件:部件、连接器、密封条和终端。如果最后三个表中的每个表都使用了parts表中的共享主键,那么您将强制执行"is-a“关系的1到1性质,而不是相互排斥的特性。

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

如果您有困难看到森林的树木,这可能是你试图设计的解决方案,而没有分析问题。我发现用ER模型分析主题是很方便的。这将主题分解为实体、关系和属性,但没有提到表设计。提示:您的模型是关系模型,而不是ER模型,即使您使用ER图解约定。同样,在我的经验中,一旦我有了一个描述问题的ER模型,那么设计一个设计解决方案的关系模型就很容易(虽然繁琐)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26072974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档