2013-06-13 2 views
-3
category subcategory subcategory 
jewelry body  nose ring,arm ring,ear ring 
      men  ring,ear ring 

У меня есть несколько category->subcategory->subcategory, так как будет таблица для этого в MySQL?my sql multiple category-подкатегория-подкатегория

+0

Помните, что это не форум, поэтому ссылки «help me plap asap» и «thanks» только загрязняют содержимое вопроса. Как вы можете видеть, вопрос, который [заслуживает ответа] (http://stackoverflow.com/questions/how-to-ask), обычно отвечает очень быстро. –

+0

Возможно, у вас будет более трех уровней категории или только три включенных в вопрос? –

ответ

1

Структуры ваша таблица следующим образом:

Id Category ParentId 
1  Jewelry  NULL 
2  Body   1 
3  nose ring  2 
4  arm ring  2 
5  ear ring  2 
- 
- 

Это называется автореферентной Таблица т.е. ParentId столбцов содержит либо NULL или значения из столбца Id тех же таблицы.

поэтому, когда вы должны знать все прямые subcategories данного category, вы просто создать запрос типа:

Select * from CategoryMaster where ParentId = 2; 

делает это, вы получите все подкатегории для суб-категории Body.

Теперь лучшая часть этой структуры данных состоит в том, что вы можете иметь n-уровни подкатегорий для любой данной подкатегории и одну и ту же таблицу с тремя столбцами (как минимум).

+0

Я думал об этом столе, но посмотрите на пример, предоставленный санджаем, ушное кольцо имеет 2 родителя, и я думаю, что это должна быть только одна категория, строка – jbrtrnd

+0

, так что у вас может быть две записи для кольца уха с разным родителем. –

+0

imho 2-я подкатегория (кольца) имеет 1, n отношение с 1-й подкатегорией (мужчины, тело). –

0

При проектировании схемы для иерархических данных вы должны учитывать это требование. Если у вас будет только один уровень категории, это означает, что один родитель, а затем его подкатегория, то лучше всего хранить данные. Но если у вас неизвестный уровень подкатегории или более одной подкатегории, рассмотрите модель вложенного набора. http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/