Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 这个数据库的结构应该是什么?_Sql_Database_Ms Access_Database Design_Relational Database - Fatal编程技术网

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

Sql 这个数据库的结构应该是什么?,sql,database,ms-access,database-design,relational-database,Sql,Database,Ms Access,Database Design,Relational Database,我想知道我的数据库结构应该是什么以及如何。我不知道该怎么做 这基本上是一个汽车设计 要求: 1) 这里有许多装配。 2) 在一个特定的组件中有许多零件。 3) 在特定零件中,可以有材料、工艺、紧固件、工装台。它描述了零件的制造内容和方式。 4) 材料、工艺、紧固件、工具所有这些都有各自不同的属性 下面是一个电子表格,显示了一些关系 我想知道我的数据库结构应该是什么 我计划使用VB.NET和Microsoft Access作为数据库。我是否应该将数据库更改为SQL或任何其他格式?而不知道所有细节

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

这基本上是一个汽车设计

要求: 1) 这里有许多装配。 2) 在一个特定的组件中有许多零件。 3) 在特定零件中,可以有材料、工艺、紧固件、工装台。它描述了零件的制造内容和方式。 4) 材料、工艺、紧固件、工具所有这些都有各自不同的属性

下面是一个电子表格,显示了一些关系

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


我计划使用VB.NET和Microsoft Access作为数据库。我是否应该将数据库更改为SQL或任何其他格式?

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

您将拥有一个装配表,其中包含每个装配的名称和ID,以及一个从零件表跟踪零件ID的列。您将拥有一个零件表,其中每个零件都有自己的唯一ID。创建零件表时,只需使用零件信息(如序列号、说明等),并对材料、工艺、工具等执行相同操作。然后您可以创建表将这些信息链接在一起。因此,您将有一个表格,其中包含零件id和材料id。这样,一个零件可以与多个材料关联,多个零件可以与同一材料关联。对于其他关系(零件到流程),(零件到工具)等,也可以这样做

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

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


就数据库而言,您可能会发现Access很容易使用,并且一开始就有了自己的想法,但最终会希望转换为SQL数据库。

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

  • 汽车包含一个或多个总成

  • 部件包含一个或多个零件

  • 总成可用于一辆或多辆汽车

  • 零件包含一种或多种材料

  • 零件包含一个或多个过程

  • 零件包含一个或多个紧固件

  • 零件包含一个或多个工具

  • 零件可以在一个或多个部件中使用

  • 一种材料可用于一个或多个零件

  • 一个过程只能用于一个部分

  • 紧固件可用于一个或多个零件

  • 工具可用于一个或多个零件

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

你拥有的是很多很多对很多的关系。我会画一个,希望你能画出剩下的

Car
--------
Car ID
Owner Name
...

Assembly
--------
Assembly ID
Assembly Name
...
现在,我们知道一辆汽车有一个或多个总成。我们还知道,一个总成可以用于多辆汽车

我们需要另一张桌子把这两张桌子绑在一起

 Car_Assembly
 -----------
 Car_Assembly ID
 Car ID
 Assembly ID
 Service Date
 ...
此表允许我们满足汽车和总成之间的多对多关系

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


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

我尝试的设计非常有效。它有一个或其他问题。所以我仍然对设计感到困惑。我无法将所有的表值连接在一起。然后让我们看看其中一个设计,看看它有什么问题,这样我们就可以说什么问题了-我们不会为您设计Assembly-Assembly\u id(PK)、Assembly\u name Part-Part\u id(PK)、Part\u name、Assembly\u id(FK)材料-Part\u no(FK)、Assembly\u id(FK)、Material\u name、Material\u cost、,... 工艺-零件号(FK)、装配id(FK)、工艺名称……但随后意识到,如果有两种或两种以上的材料或工艺,则无法工作。一个零件可以包含多个材料、工艺、紧固件或工具。好的,感谢您的澄清。。。。回到工作岗位。:-)是的,一个零件可能包含不止一种材料、工艺、fastenr、工具。我是否可以在这里上传一张图片,实际显示我想要的东西。或者我可以用其他方式展示给你们看?这会给我一个更好的主意。我以前在这里看到过一些图片,所以可以做,但我自己还没有做。好的,我会看一下。“谢谢你宝贵的帮助,先生。”吉尔伯特,谢谢你重复我已经记下的东西。扩展了一点,但仅此而已。
 Car_Assembly
 -----------
 Car_Assembly ID
 Car ID
 Assembly ID
 Service Date
 ...