- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Подскажите пожалуйста как реализовать уровень вложения 2 для товара.
Например есть у меня сейчас в базе данных таблица разделов
Категория автомобили должна иметь подкатегории, шины, музыка, оборудование.
И так далее.
Вот и думаю как проще сделать возможность добавления подкатегории.
Подскажите пожалуйста.
Есть такой вариант
но стоит ли так делать?
Не совсем понимаю, в чем осложнение, вы, вроде, все верно делаете.
Я обычно все делаю в одной таблице. Поля у неё - id категории, название категории, id родительской категории. id родительской категории равен 0, если эта категория первого уровня, и id другой категории, если та является родительской для данной.
таблица№1 для категории
таблица№2 для подкатегорий
таблица№3 для их связей
если связь строго 1к1, то возможен ваш вариант.
таблица№1 для категории
таблица№2 для подкатегорий
таблица№3 для их связей
Ну и чем это обосновано? Очень негибкий вариант, а вдруг мне нужно будет еще один уровень вложенности добавить? Еще одну таблицу создавать? :D
Я делаю именно так, как описал FladeX и никаких проблем. Любой уровень вложенности, любое количество связей и никаких сложных запросов для 3 таблиц.
Я обычно все делаю в одной таблице. Поля у неё - id категории, название категории, id родительской категории. id родительской категории равен 0, если эта категория первого уровня, и id другой категории, если та является родительской для данной.
Да, если категория и подкатегория одинаковые сущности (напр. есть статьи и на машины и на шины), то лучше всего так. Если не 1к1, то связи в отдельную таблицу.
Qinghua добавил 19.07.2010 в 13:03
Ну и чем это обосновано?
По умолчанию категория и подкатегория это разные вещи (как я понял, так как не указано). Как папки и файлы. Тут смотря что у ТС.
Да, если категория и подкатегория одинаковые сущности (напр. есть статьи и на машины и на шины), то лучше всего так.
Ну 99% это одинаковые сущности.
Если не 1к1, то связи в отдельную таблицу
Несогласен. Если связи "1 ко многим" (что, кстати, соответствует данному примеру :) ), то тоже отдельную таблицу? Таблица связей нужна только при связях "многие ко многим", на сколько я себе все это представляю. Да и какой смысл подкатегории иметь несколько родителей? Это же не облако тегов.
Чтобы не дублироваться. Шины могут относится и к автомобилям и к мотоциклам.
Часто, связи и названия категорий и подкатегорий лучше всего хранить в массиве php, а не в базе данных. Вряд ли там больше нескольких сотен наберется.
Я бы сделал как предлагает FladeX если связь один к одному.
Или делать две таблицы, если связь один ко многим:
1. Таблицу категорий - id категории ( Primary ), Имя категории, другие ваши поля
2. Таблицу связей - id связи ( Primary ), id родителя, id категории
В обеих вариантах уровень вложенности неограничен
лучше всего реализовать это через деревья аля nested sets
2 таблицы
1-я таблица категорий и подкатегорий
2-я таблица связей
Вторая таблица нужна если у вас возможно вложенность одной конкретной подкатегории в несколько категорий одновременно.