学校プロジェクトでは、独自のデータベースを作成する必要があります。電子部品の在庫を管理するためのデータベースを作成することにしました。必要条件として、ER図を作成し、その図からデータベーススキーマを導出する必要がありました。私にとって不幸なことに、教授は私が作成したダイアグラムを単純化することができ、「パート」エンティティは不要だと考えています。データベースの簡略化ER図/スキーマ
This私が思い描いた図であり、hereは派生したスキーマです。
Circuitエンティティを削除すると、Circuitエンティティが任意の数のパーツを「使用」し、各パーツに任意の回路が関連付けられるようにするには、別々のM対N各コンポーネントタイプからCircuitへの関係。それらのリレーションシップのそれぞれが新しいテーブルを生成します。これは間違いなく、プロジェクトに許可されているテーブルの厳密な最大数を超えます。
教授がPartに特に言及していない場合は、それを削除する方法が必要であり、その結果、より簡単なER図とスキーマが得られますが、その内容はわかりません。
多分あなたはそれが何であるかを見て、私にヒントを与えることができますか?
EDIT: Dan Wは素晴らしい提案をしました。私は、各部品のタイプ(コンデンサ、抵抗器など)に独自のキーを与えることによって、部品を排除することができました。使用部分の内部には、これらのコンポーネントへの外部キーが含まれます。私は、テーブルの各エントリは、単一の部分にのみ関連し、残りはnullであると仮定しなければならないだろう。結果のスキーマHere'sこのスキーマはうまくいくはずです。しかし今、ER図の修正がこのスキーマに対応するかどうかを正確に把握しなければなりません。
EDIT2: 私は、私が探している関係がn-aryであるという結論に達しました。いくつかの情報源によると、n-aryをスキーマに変換するには、参加するエンティティタイプの関係の主キーを外部キーとして含めます。次に、単純な属性を追加します。私が思いついたのはThisです。
PartIDをResistorID、CapicatorIDなどに変更してから、これらの列をUses_Partテーブルに追加できませんでしたか? –
良い提案。私はこれまで考えていましたが、私はERダイアグラムでそれをどのように表現するかについて完全にはわかりません。それはn元気の関係かもしれないが、私は見なければならないだろう。 – Schmidget
あなたのデザインが本当に気に入りました。私は何も変えないだろう。異なる種類の部品があり、属性が異なり、それぞれに個別のエンティティ(抵抗器、コンデンサなど)があります。 Partエンティティは、これらのスーパータイプエンティティとして必要です。あなたはM:Nの関係で使用されるように(正しく)言います。 –