Как создать виртуальную таблицу (view) для EAV?

95
21 июня 2021, 14:10

Имеются три, типичные для EAV, таблицы:

CREATE TABLE EntityTypes (
  Id [uniqueidentifier] NOT NULL,
  EntityName [nvarchar](50) NOT NULL
);
CREATE TABLE EntityAttributes (
  Id [uniqueidentifier] NOT NULL,
  EntityTypeId [uniqueidentifier] NOT NULL,
  AttributeName [nvarchar](50) NOT NULL
);
CREATE TABLE AttributeValues (
  Id [uniqueidentifier] NOT NULL,
  EntityAttributeId [uniqueidentifier] NOT NULL,
  AttributeValue [nvarchar](max) NULL,
);

Таблица AttributeValues ссылается на EntityAttributes, которая, в свою очередь, ссылается на EntityTypes. С приведённой схемой, пользователь может создать новый тип сущности, указать для него произвольное количество свойств/атрибутов и сохранить значения этих атрибутов.

Можно ли создать для этих таблиц либо виртуальную таблицу (view), либо если это невозможно, то SQL запрос, который бы содержал имена атрибутов (EntityAttributes.AttributeName) в качестве столбцов? Вроде как для этих целей можно использовать PIVOT, но насколько я понял в этом случае необходимо знать значения "поворачиваемых" столбцов, а имена столбцов, в моем случае, неизвестны.

READ ALSO
Использование trail Render и AddForce

Использование trail Render и AddForce

Нужно сделать след за 2д спрайтомИспользую trail Render,двигаю персонажа таким кодом:

114
Coхранение SqlCe в файл

Coхранение SqlCe в файл

пришло столкнуться с этой старой технологией и у меня с ней возникла проблемаСуть заключается в том, что я создал таблицу в sdf-файле, через...

80
Скрипт отключен, но код в нём работает. Unity 5, C#

Скрипт отключен, но код в нём работает. Unity 5, C#

У меня в скрипте есть метод OnTriggerStay2D ()Когда я отключаю скрипт, то этот метод всё равно работает, почему? Скрипт же отключён

107
System.TypeInitializationException при сборке проекта Xamarin

System.TypeInitializationException при сборке проекта Xamarin

При сборке проекта появляется ошибка:

142