0

データベースの構造をどのようにすべきかを知りたいです。どのように取り組めばよいのか困っています。

基本的にカーデザイン用です。

要件: 1) 多くのアセンブリがあります。2) 特定のアセンブリには多くのパーツがあります。3) 特定のパーツには、材料、プロセス、ファスナー、ツーリング テーブルが存在する場合があります。部品がどのように作られているかを説明します。4) 材料、プロセス、ファスナー、ツーリング これらはすべて、それぞれに異なる属性を持っています。

以下は、いくつかの関係を示すスプレッドシートです。

ここに画像の説明を入力

データベース構造がどうあるべきか知りたいです。

データベースとして VB.NET と Microsoft Access を使用する予定です。データベースを SQL またはその他に変更する必要がありますか?

4

2 に答える 2

5

リレーショナル形式で要件を言い換えて、それが役立つかどうか見てみましょう。

  • 車には 1 つ以上のアセンブリが含まれています。

  • アセンブリには、1 つまたは複数のパーツが含まれます。

  • アセンブリは、1 つまたは複数の Car で使用できます。

  • パーツには 1 つまたは複数のマテリアルが含まれます。

  • パーツには、1 つまたは複数のプロセスが含まれます。

  • パーツには 1 つまたは複数のファスナーが含まれます。

  • パーツには、1 つまたは複数のツーリングが含まれます。

  • パーツは、1 つ以上のアセンブリで使用できます。

  • マテリアルは 1 つまたは複数のパーツで使用できます。

  • プロセスは、1 つのパーツでのみ使用できます。

  • ファスナーは 1 つまたは複数のパーツで使用できます。

  • ツールは、1 つまたは複数のパーツで使用できます。

次に、これらの制約を満たすエンティティ関係図を描画できるかどうかを確認します。

あなたが持っているのは、多対多の関係です。そのうちの 1 つを描きます。残りは皆さんが理解できることを願っています。

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

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

これで、Car には 1 つ以上の Assembly があることがわかりました。また、Assembly は複数の車で使用できることもわかっています。

必要なのは、これら 2 つのテーブルを結び付ける別のテーブルです。

 Car_Assembly
 -----------
 Car_Assembly ID
 Car ID
 Assembly ID
 Service Date
 ...

このテーブルにより、車とアセンブリの間の多対多の関係を満たすことができます。

ここから、データベース内の他の多対多の関係を把握できるはずです。

追加するために編集: Microsoft Access はリレーショナル データベースです。MySQL、DB2、Oracle など、他のリレーショナル データベースもあります。SQL は、リレーショナル データベースとの通信に使用する言語です。

于 2013-01-29T16:34:49.787 に答える
2

材料、プロセスなどの詳細をすべて把握していないと、何が最適かを特定するのは困難ですが、ここに 1 つのオプションがあります。

各アセンブリの ID を含む Assembly のテーブルと、Parts テーブルの Part_ID を追跡する列があります。各パーツが独自の一意の ID を持つパーツ テーブルが作成されます。パーツ情報 (シリアル番号、説明など) だけでパーツ テーブルを作成し、材料、プロセス、ツーリングなどで同じことを行います。次に、これらをリンクするテーブルを作成できます。したがって、part_id と material_id を保持するテーブルが作成されます。このようにして、1 つのパーツを多くのマテリアルに関連付けたり、複数のパーツを同じマテリアルに関連付けたりすることができます。他の関係 (パーツからプロセス)、(パーツからツーリング) などについても同じことができます。

1 つのパーツが複数の異なるアセンブリの一部である可能性があるため、Assembly ID を Parts テーブルに格納する必要はありません。より良いオプションは、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        
                 ...               ... 

データベースに関する限り、Access は使いやすく、最初はアイデアを理解できないかもしれませんが、最終的には SQL データベースに変換したくなるでしょう。

于 2013-01-29T16:26:19.317 に答える