私はいくつかの製品データベースを構築しましたが、データベースの効率に本当に満足することはありません。これまでの私の最善のアプローチは、1つの製品テーブル、1つのカテゴリテーブル、次に1つの関係テーブルを用意することです。
製品表:
id product_name data
1 Some prod More info...
2 Another prod Even more...
カテゴリ表:
id parent_id cat_name
1 0 Main cat 1
2 1 Sub cat 1
3 1 Sub cat 2
4 3 Sub sub cat 1
5 0 Main cat 2
関係表:
id prod_id cat_id
1 1 2
2 1 4
3 2 5
etcetera...
これにより、製品をすばやく簡単に取得でき、1つの製品を複数のカテゴリに簡単に割り当てることができます。
ただし、カテゴリリストを作成するための構造は、私が望むほど単純ではありません。最初にメインカテゴリをループし、次にすべてのサブレベルをループする必要があります。製品が割り当てられているカテゴリのみを表示するのが好きですが、もちろん、サブレベルに製品が含まれている場合は、すべての親カテゴリも表示する必要があります。これにより、現在のカテゴリを表示するためのクエリ、結合、および条件付きルーチンが多数生成されます。この問題に対してより効率的な構造的アプローチがあるのではないかと思います。あなたは私のコードを書く必要はありません私はただどんな種類のより良い原則があるのだろうかと思いますか?