Мы добавляем почти во все наши приложения / продукты дополнительную поддержку атрибутов / полей для обеспечения гибкости для пользователя
Как у нас есть категория продукта, В категории клиент может определить дополнительный атрибут любого продукта.
что мы делаем на уровне БД:
В таблице категорий есть несколько дополнительных столбцов, таких как: Text1Att, Text2Att ... для поддержки текстовых значений, Num1Att, Num2Att ... для поддержки числовых значений, Date1Att, Date2Att ... для поддержки значений даты и времени, ID1Att, ID2Att .. Поддержка идентификатора из другой таблицы, как вы можете добавить выпадающий список, список, ...
Здесь все столбцы имеют тип данных String.
Здесь мы храним
Мы будем хранить мета-информацию здесь, как для Text1Att мета
ПЛА; текстовое поле; 50; правда, ложь, Null;
Заголовок поля; Тип управления; Макс. длина; является Обязательным полем; Требуется пользовательская проверка; Пользовательское сообщение проверки;
место рождения; текстовое поле; 100; правда; правда; неверное значение;
То же самое для числового поля ...
для даты мета информация будет выглядеть
дата рождения; управление календарем; true; true; неверная дата;
Заголовок поля; Управление календарем или может быть другим; требуется; есть Пользовательская проверка; Пользовательское сообщение проверки;
Что делать в таблице продуктов, это добавить одинаковое количество столбцов и иметь тип данных text1Att, .. is varchar, num1Att имеют числовые значения, date1Att имеют дату и время, ID1Att имеют int
Что мы делаем на стороне GUI: На странице определения категории добавьте эти атрибуты и создайте метаинформацию во время выполнения и сохраните ее в таблице категорий.
С другой стороны, когда мы определяем продукт в категории, метаинформация будет считываться и перемещаться из таблицы категорий и заполняться на странице определения продукта, как и другие поля.
Если вам нужна дополнительная помощь, я могу предоставить вам изображения, чтобы вы лучше поняли, как это можно сделать.
Мы опыт и анализ, это очень гибкий подход