>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(1)
>>> print yesterday.strftime('%m%d%y')
'110909'
Обычно int
.
bigint
, если Вы думаете, что у Вас будет больше строк, чем, во вселенной существуют атомы.
uniqueidentifier
полезно, если Вам нужно глобально уникальные ключи (ключи, которые, как гарантируют, будут уникальны через все таблицы в Вашей схеме, возможно, даже универсально уникальны (я не помню))
другие два, которые я не использовал бы, они не целочисленные типы (у них есть части, которые просто не имеют много смысла как ключи)
для 32-разрядных процессоров интервал, вероятно, будет самым эффективным размером для обработки.
Одной огромной причиной не использовать GUID для PKs является их ужасное отношение заливки для индексных страниц - такое неправильное употребление может существенно увеличить Ваши затраты на производительность ввода-вывода. GUID нужно оставить как AK и вместо этого управлять запросами с полученным из интервала PK по мере возможности.
Действительно необходимо держать два отдельных вопроса отдельно:
1) первичный ключ является логической конструкцией - один из ключевых кандидатов, который исключительно и надежно определяет строку в Вашей таблице. Это может быть чем-либо, действительно - INT, GUID, строкой - выбор, что имеет большую часть смысла для Вашего сценария.
2) кластерный ключ (столбец или столбцы, которые определяют "кластерный индекс" на таблице) - это физическое связанная с устройством хранения данных вещь, и здесь, небольшой, стабильный, постоянно увеличивающийся тип данных является Вашим лучшим выбором - INT или BIGINT как Ваша опция по умолчанию.
По умолчанию, первичный ключ на таблице SQL Server также используется в качестве кластерного ключа - но это не должно быть тем путем! Я имею, лично кажется крупным увеличением производительности со временем при разбивании предыдущего основанного на GUID Основного Кластеризованного Ключа в два отдельных ключа - основной (логический) ключ на GUID, и кластеризация (упорядочивание) включает отдельный столбец INT IDENTITY (1,1).
индексная фрагментация была до минимальных уровней, и таким образом индекс ищет, производительность была, возрос - настоятельно рекомендован!
Marc
unsigned int
из каких бы ни размер, который удовлетворяет Ваши конкретные потребности