我想知道我的数据库结构应该是什么以及应该如何。我很困惑应该如何工作。
它主要用于汽车设计。
要求: 1)组装很多。 2)在特定的装配中有许多部件。 3)在特定部件中可以有材料,工艺,紧固件,工具表。它描述了零件的制造方式和方式。 4)材料,工艺,紧固件,工具所有这些都具有不同的属性。
这是一个显示某些关系的电子表格。
我想知道我的数据库结构应该是什么。
我计划使用VB.NET和Microsoft Access作为数据库。我应该将我的数据库更改为SQL还是其他任何?
答案 0 :(得分:5)
让我们以关系格式重述这些要求,看看是否有帮助。
汽车包含一个或多个装配体。
装配包含一个或多个零件。
装配件可用于一辆或多辆汽车。
零件包含一个或多个材料。
零件包含一个或多个流程。
零件包含一个或多个紧固件。
零件包含一个或多个工具。
零件可用于一个或多个装配体。
材料可以在一个或多个部件中使用。
一个过程只能在一个部件中使用。
紧固件可用于一个或多个部件。
工具可以在一个或多个部分中使用。
现在,看看你是否可以绘制满足这些约束条件的实体关系图。
你拥有的是很多很多关系。我会画出其中一个,希望你能弄明白其余部分。
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是用于与关系数据库通信的语言。
答案 1 :(得分:2)
如果不了解材料,工艺等所有细节,很难确定什么是最好的,但这里有一个选择:
您将拥有一个Assembly表,其中包含每个程序集的ID和一个用于跟踪Parts表中Part_ID的列。您将拥有一个零件表,每个零件都有自己的唯一ID。使用零件信息(如序列号,描述等)创建零件表,并对材料,工艺,工具等执行相同操作。然后,您可以创建表格以将这些链接在一起。所以你有一个表可以保存part_id和material_id。这样,一个部件可以与许多材料相关联,并且一个以上的部件可以与相同的材料相关联。对于其他关系也可以这样做(零件到工序),(零件到工具)等。
您不希望将Assembly ID存储在Parts表中,因为一个部件可能是多个不同部件的一部分。更好的选择是让Assembly表包含唯一的ID以及可能的名称和描述信息,然后让另一个表跟踪哪些部分进入程序集。
所以要打破它:( * EDITED以反映多对多的关系)
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
... ...
就数据库而言,您可能会发现Access易于使用并且最初会让您失去理智,但最终会想要转换为SQL数据库。