Назначение поля сопоставления в таблице SchemaPropertyTypes

Я пробую функции Sense/Net Community edition.

Я успешно определил и установил тип контента под названием «Запрос на отпуск».

Я хочу знать, для чего предназначено поле «сопоставление» в таблице: SchemaPropertyTypes

Большое спасибо,


person Anas Tina    schedule 01.02.2017    source источник


Ответы (1)


Я очень-очень надеюсь, что вы спрашиваете об этом только из любопытства, а не потому, что хотите что-то изменить вручную в бд - потому что это не рекомендуется :). Всегда обращайтесь к репозиторию контента через API, не запрашивайте и не изменяйте базу данных напрямую.

Типы свойств и значения

Значения простых свойств (например, значения int или short text) хранятся в таблице FlatProperties. Это фиксированная таблица, содержащая предопределенное количество столбцов, предназначенных для разных типов (например, x строковых столбцов, y столбцов int — см. имена столбцов в таблице).

Как вы уже выяснили, определения свойств хранятся в таблице SchemaPropertyTypes.

Отсчитываемое от нуля поле Mapping в таблице SchemaPropertyTypes определяет индекс столбца в таблице FlatProperties для определенного свойства. Например. значение строкового свойства с отображением 6 будет храниться в столбце 'nvarchar_7' таблицы FlatProperties (обратите внимание, что индекс сдвинут на единицу, поскольку индекс имени столбца отсчитывается от единицы).

Если вы посмотрите на представление PropertyInfoView (не таблицу), это может помочь прояснить следующее: последний столбец представления — это вычисляемый столбец, в котором отображается имя столбца, которое вы можете найти в плоской таблице. таблица свойств.

(там есть и другие полезные представления SQL, которые отображают данные в более читаемом виде)

Свойство «переполнение»

Можно зарегистрировать больше свойств одного типа (например, int), чем может поместиться в одной строке таблицы FlatProperties. Решение: Sense/Net хранит эти узлы в нескольких строках — поэтому там есть столбец Page. Хотя MS SQL Server в течение некоторого времени поддерживает огромное количество столбцов, этот дизайн был сохранен из соображений совместимости.

Вот почему вы видите значения сопоставления в PropertyInfoView, такие как 249 с именем столбца nvarchar_10: значение хранится на странице 3, что означает, что содержимое занимает 3 записи в таблице FlatProperties.

«Другие» типы недвижимости

Вы могли заметить, что в случае ссылок или свойств длинного текста сопоставление отсутствует. Это связано с тем, что мы не храним их в таблице FlatProperties, у них есть свои собственные таблицы, такие как ReferenceProperties или TextPropertiesNText.

person Miklós Tóth    schedule 01.02.2017