Короткий вопрос: Как управлять категориями продуктов, которые отображаются под несколькими категориями? Это вообще плохая практика?
Фоновая информация: У нас есть база данных продуктов с категориями, которая нравится:
Products
-Arts and Crafts Supplies
-Glue
-Paper Clips
-Construction Paper
-Office Supplies
-Glue
-Paper Clips
Обратите внимание, что клей и скрепки прикреплены к обоим категориям. И хотя они отображаются в двух разных местах в этом дереве категорий, , они имеют одинаковый идентификатор категории в базе данных. Зачем? Две причины:
- Категории назначаются атрибутам - например, скрепка может иметь вес, материал, цвет и т.д.
- Продукты, присвоенные категории клея, отображаются под изобразительным искусством и канцелярскими товарами. Что и следовало ожидать - они являются тем же самым фактическим идентификатором категории в базе данных.
Это позволяет нам управлять отдельной категорией, а также атрибуты и назначенные продукты, но размещать их в нескольких местах в дереве категорий.
Мы используем вложенную модель набора, поэтому структура db, которую мы используем для поддержки, такова:
Category
----------
CategoryID
CategoryName
CategoryTree
------------
CategoryTreeID
CategoryID
Lft
Rgt
Итак, существует 1: M между Category и CategoryTree, потому что в дереве категорий может быть несколько экземпляров данной категории.
Существует ли более простой способ моделировать это, что позволит отображать категорию продукта в нескольких категориях?