2017-02-22 40 views
1

Мне известно о преимуществах и недостатках использования текста в качестве первичного ключа в таблице
(есть discussion).Какой тип переменной использовать при использовании текста в качестве первичного ключа в базе данных SQL Server

Однако мне просто интересно, если я должен использовать varchar(10) или char(10) или другой

Значения будут выглядеть 1-115115151 (длина может отличаться)

+1

Переменная длина - варчар. –

+2

Я использовал бы 'char (n)' * only * для коротких строк (<= 5 символов) и тех, которые почти всегда имеют одинаковую длину, например. ISO-коды стран, коды валют и т. Д. - 'char (n)' будет ** всегда ** использовать символы 'n' - заполняется пробелами, если вы сами не указали символы' n' -> 'varchar (n) 'является более гибким и эффективным таким образом –

+0

Что представляют эти значения? –

ответ

0

Строго говоря, вы можете использовать либо, но согласен с другими здесь - вы хотите использовать varchar для элементов переменной длины.

  • Когда ваша база данных масштабируется и вы запускаете внешнюю клавиатуру из других таблиц, есть хорошие шансы, что вы будете счастливы, что вы сохранили пространство из-за отсутствия фиксированного типа символа.
  • Вы также будете очень счастливы, когда/если, по дороге, ваша длина ключа будет длиннее, чем вы ожидали.
-1

не используйте текст для ключа primari, только целое число. его важными для упрощения программирования и соединений sql.

+0

Это не всегда так, и ОП конкретно заявляет, что они знают об этом. – AndySavage

0

Для этой строки я бы рекомендовал varchar (11).

Если длина строки может расти EVER, я бы рекомендовал сделать это 12 или даже 15.

Varchar использует пространство, равное количеству символов в использовании + 2. Данные, которые могут поместиться в любом VARCHAR (11) или varchar (15) будет использовать одно и то же пространство в обоих.