Я использую SQL Server 2012, и у меня есть модель базы данных EAV, с которой мне нужно иметь возможность выполнять грубые операции. Я готов использовать любую комбинацию пользовательских функций для выполнения sh задачи. Типы данных - это отдельные таблицы с соответствующими значениями. Я создал функцию, чтобы получить имя таблицы, связанное с атрибутом - поэтому я знаю, в какой таблице должно быть значение. Я создал DBFiddle схемы и ниже имею диаграмму (есть больше типов данных, но это для краткости).
Результат, который я хотел бы получить для любой заданной сущности, - это Имя атрибута, Значение, Мин., Макс., Учитывая, что столбцы имеют одинаковые имена, а типы данных разные - не знаю, как это повлияет на результаты.
Я не уверен, что моя модель - лучший способ сделать это, я думал о сохранении значений в виде текста и использовании приведения при хранении и извлечении с помощью хранимых процедур или функций - мне нужно будет сделать некоторые сравнения значений на данные. Возможно, такой дизайн может упростить запрос и обновление.
Любые рекомендации или примеры действительно приветствуются.
1 Сущность может иметь несколько атрибутов, и каждый определенный атрибут может иметь только один тип данных. 1 Атрибут может принадлежать многим объектам - значения для каждого атрибута уникальны для этого атрибута.
Объект 1 имеет атрибуты с 1 по 5.
Объект 2 имеет атрибуты с 1 по 5 (Значения атрибутов могут отличаться чем значения в сущности 1).
У сущности 3 есть атрибуты 1, 4, 8, 9, 10,11, 20.
Я наткнулся на эту концепцию: возможно, хороший подход. Дизайн базы данных: рекурсивные отношения «многие ко многим»
![E_R Diagram of EAV](https://i.stack.imgur.com/HSbju.png)