2013-11-17 2 views
0

Я разрабатываю сайт для бутика.
сделать связь в родительской и детской коляске

Их требование:

  • Они имеют три категории и продукт могут быть добавлены в любой из трех.

пример:

    Jackets 
     Men   -    Women 
     |        |_Top,Jackets, Bags,Pants. 
     | 
    Jackets, Pants, Shirts..... 

Теперь это легко, но вот сложная часть.

Они имеют еще категории:

пример:

Bavarian Garments 
    || 

Products1 
Products2 
    .... 
    ... 
    ... 

Пожалуйста, помогите мне сделать структуру БД.!

+0

Извините, но я не совсем понял. Не могли бы вы переформатировать его? –

ответ

0

Учитывая магазин с категориями и продуктами, то я бы поставил базу данных, как это:

Три таблицы: products, categories и productCategories.

products имея всю информацию о продукте, связанные, categories, имеющие имена категорий и, наконец, productCategories в виде таблицы перехода, имеющие только столбцы (productId и categoryId как первичные).

В зависимости от ваших потребностей categories может иметь столбец с именем parentId (по организации категории, как дерево) или он может реализовать the nested set model с lft и rgt колонн.

1

Слушайте, если у вас есть предел уровней вы можете сделать:

SELECT *.... 
FROM category AS level1 
LEFT JOIN category AS level2 ON (c2.category_id = c1.id) 
LEFT JOIN category AS level3 ON (c3.category_id = c2.id) 
... 
WHERE c1.category_id = 0 

, если у вас нет ограничений на количество детей, вы можете:

-Write в тузд рекурсивной функции .then выборки всех MySQL данных и сделать родительские/дочерние элементы подпрограммой. язык (т. е. php). Где-то (если у вас есть таблица config где-нибудь) количество уровней yo u have и реализовать генератор строки запроса, который создает строку запроса для заданного количества уровней. при каждом обновлении/вставке вы должны проверить, изменилось ли количество уровней и сохранит их.

+0

Этот ответ кто-то ответил на него раньше, все уважение к нему и его права на копирование :). – Amador

Смежные вопросы