さまざまな種類の商品がすべて入っているショップを想像してみてください。各製品にはcategory
があり、多くはsubcategories
です。 1つはサブカテゴリを1つしか持たず、もう1つはサブカテゴリを3つ持つことができます。アマゾンからの例:だから複数のカテゴリを作る最良の方法アイテムデータベースの構造
Electronics, Computers & Office
Musical Instruments
Guitars
Electronic Guitar
Acoustic Guitar
Monitors
Computers & Tablets
Tablets
Laptops
Desktops
Gaming
Home
Work
:モニターが持っている1つのカテゴリレベル
Electronics, Computers & Office > Monitors
錠 2カテゴリレベル
Electronics, Computers & Office > Computers & Tablets > Tablets
そして電子ギター三つのカテゴリレベル
Electronics, Computers & Office > Musical Instruments > Guitars > Electronic Guitar
質問は(は柔軟性、メンテナンス、アクセシビリティなどを考慮して)このような構造を実現するための最良の方法は何かありますか?
Categories table
-------------------------------------------------------
| id | title | caregoty_id |
-------------------------------------------------------
| 1 | Electronics, Computers & Office | null |
| 2 | Musical Instruments | 1 |
| 3 | Guitars | 2 |
| 4 | Electronic Guitar | 3 |
| 5 | Acoustic Guitar | 3 |
| 6 | Monitors | 1 |
| 7 | Computers & Tablets | 1 |
| 8 | Tablets | 7 |
| 9 | Laptops | 7 |
-------------------------------------------------------
あなたは自分自身との関係を持っている唯一のテーブルがあると見ることができるように:どこか私は、この構造を見ました。私はそれが正しい方法であるかどうかわかりません。私はこのアイディアを持って行くべきですか、それともCategories
テーブルをcategores1, categories2, categories3 ...
のようなテーブルにすることでより先を見越してやるべきですか?One To Many
の関係です。より多くのサブカテゴリが私が持っているより多くのテーブル。しかし、どれくらいのサブカテゴリがあるのかわからないので、SELECT
のデータは難しいと思います。
これらの方法は正しいですか?どちらを使うべきですか、それとももっと良い方法がありますか?無関係な質問であれば申し訳ありません。ありがとうございました!ビューのit'iちょうど私のポイント.Again私の意見で
に対処するための最善のアプローチであることがわかりました。各カテゴリに列を使用する場合。あなたは最大限に制限されています。私はトップレベルに '0'を使用し、ヌル値を許可する必要はありません。 'category_id'の' id'を数えることでサブカテゴリの数を取得します。 – BitAccesser
@BitAccesser 0との良いアイデア、 –