1

私は次のことを達成するための良い解決策を見つけようとしています:


「Tide - Original Scent」など、さまざまな製品の名前を含むテーブルがあります。
さらに、たとえば 50 液量オンスの量もあります。

私が今抱えている問題は、製品が50液量オンスの容器だけでなく、75液量オンスや100液量オンスなどのさまざまなサイズで提供されることです. これらのそれぞれについて、製品テーブルに新しい行があります。

id| productName            | amount | unit  
1 |"Tide - Original Scent" | 50     | "fl oz"  
2 |"Tide - Original Scent" | 75     | "fl oz"  
3 |"Tide - Original Scent" | 100    | "fl oz"  

これで、このテーブルで検索を実行するための Web インターフェイスができました。「tide」を検索するたびに、3 つの行すべてが取得されます。これは当然のことです。ただし、別の動作が必要なため、ここであなたの助けが必要です。

3 つの行すべてを返す代わりに、1 つの行のみを返します。次に、ユーザーが「Tide - Original Scent」をクリックすると、ユーザーがサイズを選択するように求められるように、php で処理できるようにする必要があります。

タスクをさらに複雑にするために、同じテーブルに
「Tide - Mountain Spring」という名前の製品もあります。
この場合、「Tide - Original Scent」が「Tide - Mountain Spring」にリンクされていることがわかるように、いくつかの関係を設定しておくとよいでしょう。php 内で、ユーザーがサイズを選択できるようにするだけでなく、(この場合は) 香りも選択できるようにしたいと考えています。

これをどのように達成できるかについて、あなたの推奨事項は何ですか(phpの部分ではありません)?
あなたのデータベースはどのように見えますか?
これらの製品をマッピングするテーブルを作成する必要がありますか? これを作成した場合、これはどのように見えるでしょうか:)

4

6 に答える 6

1

2 つの可能性:

そのテーブルにサイズを保存しないでください-他の特定の情報とともに。それを別のテーブルに移動します。構造を非正規化します。

また

クエリを実行しますが、名前でグループ化します。サイズ列については、 を実行しcount(amount)ます。複数ある場合は、ドロップダウンに選択肢を入力できます。これは良い一時的な修正です。

SELECT productName, count(amount) AS numOfChoices FROM YOUR_TABLE 
WHERE LOWER(productName) LIKE 'tide%' 
GROUP BY productName

選択が行われた後

SELECT id, amount FROM YOUR_TABLE
WHERE id = "$selectedId"

どのサイズかをピンポイントで選択できるサイズの選択肢を提示します。

于 2012-05-30T17:33:15.103 に答える
0

サブラベルへの外部キーを作成し、カウンターで並べ替えます。これは次のようになります。

製品表:

  • プロダクト ID (キー)
  • ブランドID
  • 価格

ブランド表:

  • ブランド ID (キー)
  • ブランド

サブテーブル:

  • ID
  • 製品番号
  • 注文指数
  • 価値

サイズ表:

  • サイズID
  • 価値
  • 単位

製品サイズ表:

  • サイズID
  • 製品番号

次に、後続のサブラベルを使用してサブカテゴリに分割します。

製品

10 | 6 | 1.99
11 | 6 | 2.99
12 | 6 | 3.99    
13 | 6 | 1.99
14 | 6 | 2.99
15 | 6 | 3.99

ブランド

6 | Tide

サブラベル

30 | 10 | 1 | Original Scent
30 | 11 | 1 | Original Scent
30 | 12 | 1 | Original Scent
30 | 13 | 1 | Mountain Spring
30 | 14 | 1 | Mountain Spring
30 | 15 | 1 | Mountain Spring

サイズ表

1 | 50  | fl.oz.
2 | 75  | fl.oz.
3 | 100 | fl.oz.

製品サイズ表

1 | 10
1 | 13
2 | 11
2 | 14
3 | 12
3 | 15
于 2012-05-30T17:33:07.713 に答える
0

私は個人的にこのようにテーブルをセットアップします..

製品表:

ID| Product ID | Product Name          | Description

1 | 0404888282 | Tide - Original Scent | Smells Good

数量表

ID| Product ID | Size| Price | Quantity

1 | 0404888282 |  50 | 4.99  | 23
2 | 0404888282 |  75 | 5.99  | 120
3 | 0404888282 | 100 | 7.99  | 10

この構造では、一意のアイテムごとにテーブルがあり、各サイズのサイズと数量用に別のテーブルがあります。構造をすっきりと分かりやすく保ちます。

于 2012-05-30T17:37:04.500 に答える