私は、ER ダイアグラムとそのダイアグラムから派生したデータベース スキーマの作成を必要とする学校のプロジェクトに取り組んでいます。スキーマには、いくつかの非常に厳しいサイズ要件があります (x テーブル数以下)。一部のエンティティが、EER モデルを使用して最もよく説明される「is-a」タイプの関係に従っているという問題に直面しています。これは、使用が許可されていないものです。私が達成しようとしていることの非常に大まかな概要は次のとおりです。
多くの (完全に一意の属性) を持ついくつかの一意の [Part] を追跡する必要があります。それらはすべて、(QuantityInStock) などのいくつかの属性を共有しています。私は、それらの異なる [パーツ] のいずれか (数量)を使用する[マシン] を持っています。
ER モデルに従えば、機械はそれぞれの固有の部品タイプと個別の M 対 N の関係を持つと思います。各 M 対 N の関係は、独自のテーブルに変換されることになっています。使用できるテーブルの最大数が厳密に制限されているため、これは不可能です。
EER モデルに従えば、翻訳プロセスは 1 つまたは 2 つの余分なテーブルを生成するだけで、[パーツ] ごとに 1 つ以上のリレーションは生成しません。
私が達成する必要があるのは、「is-a」関係 (つまり、[ThisPartType] 「is-a」[Part]) を ER モデル内で機能するものに変換することです。さまざまな固有のパーツを、それらのパーツを使用するマシンに関連付ける何らかの方法が必要です。
私が何をしようとしているのかの例を挙げると:
マシン A は、PartA[1] を 30 個、PartB[21] を 47 個、PartC[18] を 22 個、PartD[54] を 3 個使用しています。
マシン B は、8 つの PartC[12] と 1 つの PartD[44] を使用します。
マシン C は、PartF[0] の 1 つと PartZ[28] の 5 つを使用します。
PartB[21] (半径、ねじ幅) の固有の情報にアクセスし、すべての PartC の中で最も重いクエリを実行したいと考えています。しかし、これ以上多くのテーブルを必要としない方法で、これらのパーツをマシンに割り当てる機能も必要です。
それが意味をなすことを願っています。ヒントを提供していただきありがとうございます。