3

私は3つの製品タイプを持っています。もっと後になります。また、私は製品カテゴリを持っています。カテゴリに複数の商品タイプを含めることはできません。では、どのようにカテゴリを保持する必要がありますか。

1.id | parent_id | name

製品タイプをルート カテゴリとして設定します。
例えば:

Electronic > computer > laptop 

Electronic の親 ID は 0 になり、そのため次のカテゴリがリンクされます。

  1. id | parent_id | product_type | name

product_type から電子を取得し、コンピューターの parent_id は 0 になります。

どの方法が良いですか?

4

4 に答える 4

1

現在使用している隣接リスト デザインではなく、ネストされたセット デザインを使用することをお勧めします。

それは機能しますが、パフォーマンスの問題が発生している場合、ネストされたセットに対する単一のクエリは、隣接リスト (複数のデータベース呼び出しが必要) よりもカテゴリに関する多くの情報を生成できます。

私は過去に mysqlの階層データに関するこの記事を多くのアプリケーションで使用してきましたが、非常にうまく機能しています。

TL;DR:

隣接リスト

  • 長所:実装が簡単
  • 短所: 深さ、ツリー内の位置などの情報を決定するために、再帰的なデータベース呼び出しが必要です。

ネストされたセット

  • 長所: データに関して必要なほとんどの情報を 1 回のクエリで生成できます
  • 短所:実装が難しい
于 2014-01-06T15:31:05.097 に答える
0

現在 3 つの製品タイプがあり、後で製品タイプを増やすことができるとおっしゃっていたように、製品タイプのテーブルが必要です -

Product_type
------------
1> product_type_id - Primary Key

2> product_type_name

これで、階層的なカテゴリ データになり、product_type テーブルから 1 対多の関係を持つカテゴリ テーブルができました。

Product_categories
------------------

1> product_cat_id - Primary key

2> product_type_desc 

3> parent_product_type_id (for hierarchical relationship)

4> product_type_id - foreign key to **Product_type** table.

ここでさらに要件を詳しく説明してください。

ありがとう

于 2013-04-01T10:23:39.623 に答える