我想知道我的数据库结构应该是什么以及如何。我不知道该怎么做。
它基本上是一个汽车设计。
要求: 1)有多个组件。2)在一个特定的装配中,有许多部件。3)在特定零件中可以有材料、工艺、紧固件、工具台。它描述了一个部件是什么以及如何制造的。4)材料、工艺、紧固件、工具所有这些都有不同的属性。
这是一个电子表格,显示了其中的一些关系。
我想知道我的数据库结构应该是什么。
我计划使用VB.NET和微软的Access作为数据库。我应该将我的数据库更改为SQL或任何其他数据库吗?
发布于 2013-01-30 00:34:50
让我们以关系格式重申需求,看看这是否有帮助。
现在,看看您是否可以绘制一个满足这些约束的实体关系图。
你所拥有的是许多多对多的关系。我将画其中的一个,希望你能弄清楚其余的。
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是用于与关系数据库通信的语言。
发布于 2013-01-30 00:26:19
如果不知道所有的细节,比如什么材料,流程等,很难确定什么是最好的,但这里有一个选择:
您将拥有一个Assembly表,该表将包含每个组件的ID和一个用于跟踪Parts表中的Part_IDs的列。你将有一个零件表,每个零件表都有它自己的唯一ID。创建零件表时只需要零件信息(如序列号,描述等)。并对Material、Process、Tooling等执行相同的操作。然后,您可以创建表格,将它们链接在一起。因此,您应该有一个表,其中包含part_id和material_id。这样,一个零件可以与多个材料关联,多个零件可以与同一材料关联。对于其他关系(部件到流程)、(部件到工具)等,也可以这样做。
您不希望将部件ID存储在零件表中,因为一个零件可能是多个不同部件的一部分。一个更好的选择是让assembly表包含一个唯一的ID,可能还有名称和描述信息,然后让另一个表跟踪哪些零件将被放到一个组件中。
因此,要将其分解:(*编辑以反映多对多关系)
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数据库。
https://stackoverflow.com/questions/14587154
复制相似问题