2016-04-27 11 views
0

私は「ユニット」と呼ばれるプライマリフィールドを持っていて、その中にいくつのオブジェクト(大きなばらつきを示す)が存在するかを指定する必要があります。これらのオブジェクトには116種類あり、6つのカテゴリに分類できます。各カテゴリは、各オブジェクトタイプを記述するためにどの属性を使用するかを決定します。すべてのユニットについて、その中にいくつのタイプのオブジェクトがあるかを記録し、どれくらい多くのオブジェクトが各属性を表示するかを記録する必要があります。私はスキーマの例とそれをどのように適用する必要があるかを描いた。おそらく、最も簡単な解決策は、各タイプのテーブルを作成し、それらをユニットリストを含むテーブルに関連付けることですが、そこには非常に多くのテーブルがあります(MS Accessには制限がありますか?)。それ以外の場合は、アクセスで「ネストされたフィールド」を作成できますか?私はちょうどその言葉を上げましたが、私が何をしようとしているのかを記述しているようです。MS Accessの「ネストされたフィールド」

  • カテゴリー1(はattribs:A、B、C、D)

    • タイプ1
    • タイプ2
  • カテゴリー2(はattribs:X、Y、Z )

    • タイプ3
    • タイプ4

  • ユニット
    • タイプ1 | | b | c | d |
    • タイプ2 | | b | c | d |
    • タイプ3 | x | y | z |
    • タイプ4 | x | y | z |

UPDATE: 明確にするために、私は基本的に私の主テーブルの各フィールドのサブテーブルを作成する必要があります。各フィールドにはサブ属性があり、この細かい解像度でオブジェクトの分布を指定できる必要があります。

答えて

1

あなたがしたいのは、この質問に似ています:Database design - multi category products with propertiesです。

したがって、それぞれの属性値をユニットに関連付ける3番目のテーブルがあります。そして、各カテゴリが持つことができる属性を制御するために、各カテゴリの属性(名前)を指定する第4のテーブルが必要となる。

Unit: 
    .id 
    .categoryid 

Category: 
    .id 
    .cat_name 

Category_Attributes: 
    .attribID 
    .categoryid 
    .attribute_name 

Unit_Attributes: 
    .unitid 
    .attribID 
    .attrib_value 
+0

私が直面している問題がこれを反映しているかどうかはわかりません。明確にするために、基本的にプライマリ・テーブルの各フィールドにサブタブを作成する必要があります。各フィールドにはサブ属性があり、この細かい解像度でオブジェクトの分布を指定できる必要があります。 –

+0

サブタブルを作成する必要はありません。あなたが必要とするのは、各ユニットの属性とそれらの値との関係を作成することです。カテゴリと属性名の有効な組み合わせを保持する 'Category_Attributes'から有効な' AttribID'を取る 'Unit_Attributes'で、これが処理されます。 OTOH、[リンクされた質問の2番目の回答](http:// stackoverflow。com/a/1590460/1431750)は、カテゴリごとにテーブルを作成する方が、**各カラムに**一般的なデータ型**を使用しない方が良いと言います。それ以外の場合は、上記のように[soln 1](http://stackoverflow.com/a/1590453/1431750)にアクセスしてください。 – aneroid

+0

私は2番目のソリューションを使用し、私の16種類のそれぞれに新しいテーブルを作る必要があると思います。 1つは、あなたがスキップしたようだと思うのは、それぞれのタイプが、それぞれのユニットではなくカテゴリーに応じて異なるデータタイプを持っているということです。各ユニットは、各タイプのオブジェクトの存在を示すために値を埋めなければなりません(大部分は0に設定されます)。私はこの非常に複雑な質問とそれに続く「説明」について謝罪します。 –

関連する問題