Я предполагаю, что вы хотите использовать MS SQL Server.
Если это так, то я бы не стал использовать ntext
Этот тип данных должен быть удален в будущих версиях SQL Server. Если вам действительно нужно использовать тип данных не-Unicode, тогда используйте nvarchar
. Другое ограничение использования ntext
заключается в том, что вы не можете преобразовать его во многие другие типы данных. Из 30 нечетных типов данных вы можете конвертировать ntext
только в шесть из них.
В этом сценарии вы могли бы иметь следующую структуру таблицы.
Create Table dbo.PropertyInformation
(
PropertyId int identity(1,1) not null,
PropertyName varchar(50) not null,
PropertyTypeId int not null,
PropertyValue nvarchar(max)
)
Затем добавьте справочную таблицу для хранения типов ваших свойств
Create table dbo.PropertyTypes
(
PropertyTypeId int identity(1,1) not null,
PropertyType varchar(50) not null
)
Вы можете сохранить любой тип значения в столбце PropertyValue, так как nvarchar
преобразует почти все другие типы данных - кроме изображения. Прочитайте PropertyType из справочной таблицы и преобразуйте значение PropertyValue на лету в вашем приложении.
Хотя, у вас есть причина, почему вы не хотите иметь 4 разных столбца для хранения значений свойств?
ntext информация о типе данных
Приведение и преобразование в SQL Server (Матрица разрешенных преобразований составляет примерно половину страницы)