Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Първичен ключ на SQL Server в полето за дата и час

Когато казвате, че датите ще бъдат уникални, имате предвид, че мислите ще бъдат уникални или уникалността им е гарантирана от постановката на проблема? Според моя опит някои неща се оказват доста по-малко уникални, отколкото си представяте (пример са номерата на социалното осигуряване в САЩ).

Ако стойностите на датата не са гарантирани уникални, трябва да добавите целочислен ключ.

Ако стойностите на датата са гарантирано уникални, променят ли се? Ако се променят, реферират ли се от други таблици? Ако и двата отговора са "да", вероятно трябва да добавите целочислен ключ.

Ако стойностите на датата са гарантирано уникални и не се променят или не са посочени, можете да ги използвате за ключа. Редовните DATETIME са 8 байта, а стандартните INTEGER стойности са 4 байта, което може да има малък ефект върху индексирането. Ако вашите стойности за дата са само дати или само точни до минута или по-малко и в по-ограничения диапазон, разрешен от типа, можете да използвате SMALLDATETIME и да намалите стойностите на тези индекси до 4 байта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Уникално ограничение за множество таблици

  2. Връщане на ISO номера на седмицата от дата в SQL Server (T-SQL)

  3. Множество връзки с един и същ низ за свързване при една транзакция, повишена транзакция?

  4. Изберете/Вмъкнете версия на Upsert:има ли модел на проектиране за висок едновременност?

  5. SQL Server и имплицитно преобразуване на типове