2011-06-22 14 views
0

私の製品のデータベースをセットアップする必要があります。私はこのデータベースに製品名、製品賞、製品の詳細、および製品の機能を格納する必要があります。 1つの製品に複数の機能があります。このデータベースはどのようにセットアップできますか?製品データベースを設計する

IはProduct_detailはID、P_NAME、p_detail、p_prizeと

  • Product_機能を有する二つのテーブル

    1. 持つデータベースは、ID、P_機能を(つのデータベースのための1つ以上の羽根がある)が設定しています

    正しいですか?正しいとすれば、どのようにして製品とその機能の関係を作ることができますか?そして、データベースからどのようにデータを取り出すことができますか?

    これが間違っている場合はどうすればいいですか?

  • +0

    http://stackoverflow.com/questions/3241033/designing-database-to-hold -different-metadata例えばシャツのサイズではありません - それはthte後者の製品の扶養家族を作るために頻繁に便利ですので、EMBOの答えに追加-information/3242426#3242426 –

    +1

    ない本当の問題 – Predator

    答えて

    1

    これは、説明したような多対多の関係を解決するために使用される共通のリレーショナルデザインパターンです。 Product_detailProduct_featuresにリンクするリンクテーブルが必要です。

    ProductFeature、リンクテーブルProductFeatureのようにテーブルの名前を変更します。

    ProductFeatureは、製品IDとFEATUREID(そしておそらく、製品ごとに複数のレコードを含むレコードから成る。

    をので、ID 1

    SELECT * 
    FROM product p 
    INNER JOIN productfeature pf ON pf.productid = p.id 
    INNER JOIN feature f ON pf.featureid = f.id 
    WHERE p.id = 1 
    

    で製品のすべての機能を取得するためにあなたが追加する必要があります適切な外部キー、あなたは(MySQLの同等が何であるかを確認してくださいSQL Serverの構築体を、そうではない)ビューでクエリをカプセル化する検討するかもしれない

    +0

    、同様の名前の製品の特徴は、常に同じものを表していない心に留めておきますパンツサイズと同じであり、xs/s/m/l/xlは必ずしも1/2/3/4/5ではない。 –

    関連する問題