gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:43:12 24 4
gpt4 key购买 nike

enter image description here

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

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

每种类型的简要描述

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

端子:连接器中插入了压接电线。将端子压接到电线上以形成无焊点。当连接器与车辆中的对应端子配对时,这些端子就会与对应端子配对。

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

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

连接器和密封件之间的关系类似。密封件和端子没有任何关系。

我的目标:

  1. 如果用户正在浏览某些部分,我希望 View 显示所有相关/关联的部分。例如,如果连接器 id 1 可以与 5 种不同类型的终端一起使用,我希望所有这些终端都显示在 View 中。

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

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

  4. 最后,一个连接器可以有多个对应部分,我希望它们也能相关。

我是数据库设计新手,很难透过树木看到森林。就我个人而言,我认为我应该放弃单一表的想法,并为连接器、密封件和端子使用单独的表,并绘制它们之间的关系。

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

最佳答案

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

更重要的是,您还没有对您在口头描述中概述的部件与其他部件之间的关系进行建模。这些关系可能是您创建的 BOMS 中固有的,但它们在这里并不明显。如果对这些关系进行建模,会让数据库变得更加实用吗?我不知道,随手说一下。

如果您无法只见树木、见森林,则可能是您在没有分析问题的情况下尝试设计解决方案。我发现使用 ER 模型来分析主题很方便。这将主题分解为实体、关系和属性,但没有提及任何有关表设计的内容。提示:即使您使用 ER 图表约定,您的模型也是关系模型,而不是 ER 模型。同样,根据我的经验,一旦我有了一个描述问题的 ER 模型,就很容易(尽管很乏味)设计一个设计解决方案的关系模型。

关于mysql - 如何在单个表之间创建关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com