0

これは私の脳を揚げています、私は本当に助けが必要です! これが私が達成したいことです。

テーブル名製品があります。製品には、最大 2 つのオプション フィールドがある場合とない場合があります。例の色とサイズ。

商品にオプション フィールドがない場合、価格と数量の行は 1 つだけです。それ以外の場合は、オプション フィールドの各行に価格と数量が 1 つずつあります。

私はこの音が紛らわしいことを知っています、私を許してください。私も混乱しています。): しかし、以下にいくつか例を挙げます。

100 万ドルの質問は、作成する必要があるテーブルとそのフィールドは何かということです。


【オプション欄のない商品】

価格 | 量

$1.00 | 2


【オプション欄が1つある商品】

価格 | 数量 | サイズ

$1.00 | 2 | 大きい

$2.00 | 1 | 小さな


【オプションフィールドが2つある商品】

価格 | 数量 | サイズ | 色

$1.00 | 2 | 大 | 緑

$2.00 | 1 | 小さい | 青い


Product と Optional という名前の 2 つのエンティティを使用して、Optional エンティティと多対多の関係を持ち、フィールド名 (例: Size) を格納し、ジャンクション エンティティ名 Product_Optional に値 (例: Large) を格納するというアイデアを思いつきました。

ただし、1 つの製品の 2 つのオプション フィールドを同じ価格と数量にバインドする方法の問題にまだ悩まされています。混乱させてごめんなさい:(

4

2 に答える 2

1

編集:

オプションが不明なので、次のようなことができます

製品

id
product_name
product_description
...

製品オプション

id
option (size, color, whatever)
value (large, blue, anything)

製品在庫

id
product_id
product_option_id
quantity
price

次に、ProductInventory のレコードは次のようになります。

1 | 1 | 1 | 5 | 2.00
1 | 1 | 2 | 3 | 3.00

などなど

上記のテーブル構造を使用した、より詳細な例:

製品

1 | Product 1 | Prod 1 Description
2 | Product 2 | Prod 2 Description
3 | Product 3 | Prod 3 Description

製品オプション

1 | Size | Small
2 | Size | Medium
3 | Size | Large
4 | Color | Blue
5 | Color | Red
6 | Color | Green
7 | Width | 10 Inches
8 | ... (as many as you want)

製品在庫

1 | 1 | 1 | 5 | 2.00
(says for product 1, size small, there are 5 quantity, and cost is 2.00

2 | 1 | 2 | 17 | 3.00
(says for product 1, size medium, there are 17 quantity, and cost is 3.00

于 2011-03-08T20:18:50.610 に答える
0

私は同じ問題に遭遇しました.複数のテーブルも必要だと思います. これを試して:

製品

id
product_name
product_price
.....

商品_オプション

id
product_option_name

product_options_values

product_options_id を外部キーとして使用して、product_options_values を product_options にリンクします。例: product_option 'size' には 'small'、'medium'、'large'* の product_option_values があります。

id
product_options_id (fk)
options_value
options_value_price

product_options_to_products

この表は、製品とオプションをリンクしています。ここでは、異なる製品に異なるオプションを割り当てます。

id
product_id
product_options_id
于 2011-03-09T00:41:26.187 に答える