Типы данных SQL для строк - PullRequest
       3

Типы данных SQL для строк

2 голосов
/ 30 декабря 2011

У меня есть что-то вроде структуры данных -

class House
{
    int id;
    string street;
    string city;
    string review;
    string status;
}
  1. улица и город являются обычными строками и должны всегдабыть менее 32 символов.Я так понимаю, они должны иметь тип данных SQL nchar (32)?Или они должны быть varchar?

  2. review - необязательная строка, которую могут вводить пользователи.И если они дают, это может сильно варьироваться, от 4-5 слов до 2000+ символов.Так какой тип данных мне следует использовать для хранения этого?

  3. status - это флаг, который может иметь значения «New», «Old», «UnStarted».Какое бы значение оно не имело, оно будет отображаться в таблице данных в настольном приложении.Должен ли я хранить это поле как строку или байт с разными битами, действующими как флаги?

1 Ответ

4 голосов
/ 30 декабря 2011

Я бы предложил использовать VARCHAR (32) для адреса и города, если вы разрабатываете таблицу Соединенных Штатов.Если вы разрабатываете международное поле, увеличьте оба поля и, например, переключитесь на NVARCHAR (72) .Хранение NVARCHAR занимает больше места, но позволяет хранить не-ASCII-символы ....

CHAR (32) резервирует 32 байта данных, независимо от того, содержит ли поле 1 символили 32 символа.Кроме того, некоторые языки программирования клиента не будут обрезать лишние пробелы автоматически (что правильно, но может и не ожидаться). NCHAR (32) резервирует 64 байта, поскольку каждый символ представляет собой 2 байта

Для обзора я согласен с lanks, TEXT или VARCHAR(max) - (специфично для MS SQL) будет лучше.Может ли обзор быть длиннее 2000 символов?Если 2000 является абсолютным пределом, то я бы пошел с VARCHAR (2000) .Я бы только пошел с полем ТЕКСТ, если вы можете иметь любую длину обзора.Имейте в виду, что если пользователь вводит обзор более чем в 2000 символов, база данных выдаст ошибку, если вы попытаетесь вставить ее, поэтому вашему приложению необходимо либо ограничить количество символов, либо обработать ошибку при ее возникновении.

Статус должен быть наименьшим целым числом, которое позволяет ваша база данных.Вы можете создать вторую таблицу для предоставления текстовых описаний кодов.

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