powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархия категорий
3 сообщений из 3, страница 1 из 1
Иерархия категорий
    #33487451
Фред123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Имеется каталог товаров. Товары принадлежат к определенным категориям. При этом категории тоже расположены иерархически.

категории верхнего уровня
--категория среднего уровня
----категория нижнего уровня
--категория среднего уровня
----категория нижнего уровня
категории верхнего уровня
--категория среднего уровня
----категория нижнего уровня
--категория среднего уровня
----категория нижнего уровня

Проблема состоит в том, что категория верхнего уровня не всегда содержит категории среднего уровня (аналогично категории среднего уровня не всегда содержат категории нижнего уровня). Соответственно товар может принадлежать как категории нижнего уровня, так и среднего, и верхнего.

Отсюда вопрос: как все это дело связать?

На данный момент вижу варианты:
1) даже если категория верхнего уровня не содержит подкатегорий, создавать в ней одну категорию среднего уровня, а в ней одну категорию нижнего уровня, и соответственно к последней будет принадлежать товар

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

2) Так как я с большой долей вероятности уверен, что
- верхних категорий < 10
- средних категорий < 100

то можно создать таблицу, где будут содержатся все виды категорий, но идентификаторы:
1-9 для верхних категорий
10-99 для средних категорий
100-... для нижних

Получается всего две таблицы
-категории
-товар

Очевидный минус - в таблице категорий одни кортежи ссылаются на другие.


Ваши предложения?

С уважением, Сергей.
...
Рейтинг: 0 / 0
Иерархия категорий
    #33487507
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОчевидный минус - в таблице категорий одни кортежи ссылаются на другие.
Это еще почему минус?

в данной ситуации у вас классическая связь многие-ко-многим (товар-категории) которая так же классически развертывает в две связи 1-к-1 с помощью дополнительной таблицы.
т.о. имеем 3 таблицы:
-товары
-категории (с деревом на id<-parent_id)
-товар в категории (два внешних ключа на товар и категорию)
...
Рейтинг: 0 / 0
Иерархия категорий
    #33487522
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынникв две связи 1-к-1 с помощью дополнительной таблицы
1-ко-многим конечно же
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархия категорий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]