Я пробую функции Sense/Net Community edition.
Я успешно определил и установил тип контента под названием «Запрос на отпуск».
Я хочу знать, для чего предназначено поле «сопоставление» в таблице: SchemaPropertyTypes
Большое спасибо,
Я пробую функции Sense/Net Community edition.
Я успешно определил и установил тип контента под названием «Запрос на отпуск».
Я хочу знать, для чего предназначено поле «сопоставление» в таблице: SchemaPropertyTypes
Большое спасибо,
Я очень-очень надеюсь, что вы спрашиваете об этом только из любопытства, а не потому, что хотите что-то изменить вручную в бд - потому что это не рекомендуется :). Всегда обращайтесь к репозиторию контента через 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.