Первый пост, пожалуйста, будьте добры.
ПРИМЕЧАНИЕ. Я просмотрел запись № 20856 (как реализовать теги), но считаю, что это отличается из-за того, что рассматриваемый мной метод тегов зависит от конкретной организации в моем приложении. Я надеюсь, что кто-нибудь сможет подтвердить направление, в котором я иду, или указать другие варианты.
(предыстория) Мы создаем веб-приложение, которое позволяет различным организациям видеть свой инвентарь в разных местах. В базе данных хранятся пользователи, организации, сайты и элементы, а также есть ссылки с сайтов и элементов на организации, которые позволяют нам определять, какие элементы / сайты показывать каким пользователям (в зависимости от их организации).
Две (или более) организации часто хотят использовать портал для проверки состояния запасов (например) виджета A на складе в Лос-Анджелесе. Эта часть в порядке. Однако разные организации также отслеживают уникальную информацию о виджете A. Например, организация 1 хочет отслеживать цвет, объем и основного поставщика для каждого элемента. Организация 2 хочет отслеживать цвет, тип запаса, цикл инвентаризации, код покупателя для каждого элемента. Я хочу избежать ситуации, когда мне нужно загрузить таблицу со всеми этими возможными полями, а затем выяснить, какие организации используют какие поля.
Я подумываю использовать что-то вроде тегов, но добавить категорию тегов и определить категорию тегов на уровне организации. Итак, основная структура таблицы будет примерно такой:
Таблица: OrgTagCategory
Поля: OrgId, TagCategoryId, CategoryTitle
Таблица: OrgTag
Поля: OrgId, TagCategoryId, TagId, TagTitle
Таблица: OrgItemTag
Поля: OrgId, ItemId, TagId
Затем, когда пользователь вошел в основную панель управления, сетка будет включать соответствующие поля элементов в виде столбцов в сетке. Итак, из приведенного выше примера организация 1 увидит номер позиции, описание (будет отображаться для всех), цвет, объем и основного поставщика. Для организации 2 будет показан номер позиции, описание, цвет, тип запаса, цикл инвентаризации, код покупателя.
Я слишком много думаю об этом или есть более простой метод, который мне не хватает? Мы искренне ценим все мысли / отзывы.