Путаница с nvarchar (MAX) в Fluent NHibernate / MSSQL - PullRequest
0 голосов
/ 14 июля 2011

Я искал лучший способ сохранить большое строковое значение (например, сообщение в блоге, текстовое описание и т. Д.) С помощью Fluent nHibernate, и ответ, который я продолжаю видеть, заключается в использовании nvarchar(MAX),Который, если мое чтение правильное (что очень часто не так), составляет 4000+.Итак, у меня есть поле вроде этого ...

        Map(x => x.Description)
            .Column("[description]")
            .Length(4001)
            .Access.Property()      
            .Not.Nullable();

Теоретически, это должно делать это, верно?Я немного запутался по этому поводу, хотя.В школе нас довольно четко учили, что вы хотите, чтобы размер каждого столбца был как можно меньше.

Если я сделаю столбец размером 1008 *, разве это не противоречит этому самому принципу и не сделает таблицу очень большой и расточительной?Кто-нибудь может пролить на меня какую-то очень ясную, глупую, блондинскую логику?Я остался в замешательстве из-за всего этого испытания.

Ответы [ 2 ]

1 голос
/ 14 июля 2011
0 голосов
/ 14 июля 2011

Обратите внимание, что max означает, что вы можете хранить символы размером до 2 ^ 31-1 байт данных.Однако он будет занимать место на основе фактической длины данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...