首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个数据库的结构应该是什么?

这个数据库的结构应该是什么?
EN

Stack Overflow用户
提问于 2013-01-30 00:09:15
回答 2查看 310关注 0票数 0

我想知道我的数据库结构应该是什么以及如何。我不知道该怎么做。

它基本上是一个汽车设计。

要求: 1)有多个组件。2)在一个特定的装配中,有许多部件。3)在特定零件中可以有材料、工艺、紧固件、工具台。它描述了一个部件是什么以及如何制造的。4)材料、工艺、紧固件、工具所有这些都有不同的属性。

这是一个电子表格,显示了其中的一些关系。

我想知道我的数据库结构应该是什么。

我计划使用VB.NET和微软的Access作为数据库。我应该将我的数据库更改为SQL或任何其他数据库吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-30 00:34:50

让我们以关系格式重申需求,看看这是否有帮助。

  • 汽车包含一个或多个部件。
  • 部件包含一个或多个部件。
  • 部件可以用于一个或多个汽车。
  • 部件包含一个或多个材料。
  • 一个部件包含一个或多个流程。
  • 一个部件包含一个或多个紧固件。
  • 一个部件包含一个或多个工具。
  • 一个部件可以用于一个或多个Assemblies.
  • A物料可以在一个或多个部件中使用。
  • A工艺只能用于一个零件。
  • 紧固件可以用于一个或多个零件。
  • 工具可以用于一个或多个零件。

现在,看看您是否可以绘制一个满足这些约束的实体关系图。

你所拥有的是许多多对多的关系。我将画其中的一个,希望你能弄清楚其余的。

代码语言:javascript
运行
复制
Car
--------
Car ID
Owner Name
...

Assembly
--------
Assembly ID
Assembly Name
...

现在,我们知道一辆汽车有一个或多个装配。我们还知道,一个组件可以用于多个汽车。

我们需要的是另一个表来将这两个表连接在一起。

代码语言:javascript
运行
复制
 Car_Assembly
 -----------
 Car_Assembly ID
 Car ID
 Assembly ID
 Service Date
 ...

此表允许我们满足汽车和装配之间的多对多关系。

从这里开始,您应该能够找出数据库中的其他多对多关系。

编辑后添加: Microsoft Access是一个关系数据库。还有其他关系数据库,如MySQL、DB2和Oracle。SQL是用于与关系数据库通信的语言。

票数 5
EN

Stack Overflow用户

发布于 2013-01-30 00:26:19

如果不知道所有的细节,比如什么材料,流程等,很难确定什么是最好的,但这里有一个选择:

您将拥有一个Assembly表,该表将包含每个组件的ID和一个用于跟踪Parts表中的Part_IDs的列。你将有一个零件表,每个零件表都有它自己的唯一ID。创建零件表时只需要零件信息(如序列号,描述等)。并对Material、Process、Tooling等执行相同的操作。然后,您可以创建表格,将它们链接在一起。因此,您应该有一个表,其中包含part_id和material_id。这样,一个零件可以与多个材料关联,多个零件可以与同一材料关联。对于其他关系(部件到流程)、(部件到工具)等,也可以这样做。

您不希望将部件ID存储在零件表中,因为一个零件可能是多个不同部件的一部分。一个更好的选择是让assembly表包含一个唯一的ID,可能还有名称和描述信息,然后让另一个表跟踪哪些零件将被放到一个组件中。

因此,要将其分解:(*编辑以反映多对多关系)

代码语言:javascript
运行
复制
Assembly         Parts              Material          Parts_Materials   etc
--------         -----              --------          -------           -----
ID       (PK)    Parts_ID (PK)      Material_ID (PK)  Part_ID
Parts_ID (FK)    Attribute1         Attribute1        Material_ID
                 Attribute2         Attribute2        
                 ...               ... 

就db而言,您可能会发现Access很容易使用,并在一开始就将您的想法写下来,但最终会想要转换为SQL数据库。

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

https://stackoverflow.com/questions/14587154

复制
相关文章

相似问题

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