sql >> Base de Datos >  >> RDS >> Sqlserver

Clave principal de SQL Server en el campo de fecha y hora

Cuando dices que las fechas serán únicas, ¿quieres decir que piensas serán únicos, o su unicidad está garantizada por el enunciado del problema? En mi experiencia, algunas cosas resultan ser mucho menos únicas de lo que uno imagina (los números de seguridad social de EE. UU. son un ejemplo).

Si no se garantiza que los valores de fecha sean únicos, debe agregar la clave entera.

Si se garantiza que los valores de fecha son únicos, ¿cambian? Si cambian, ¿son referenciadas por otras tablas? Si ambas respuestas son "sí", probablemente debería agregar la clave entera.

Si se garantiza que los valores de fecha son únicos y no cambian o no se hace referencia a ellos, puede usarlos para la clave. Los DATETIME regulares son 8 bytes y los valores INTEGER estándar son 4 bytes, lo que podría tener un efecto menor en la indexación. Si sus valores de fecha son solo fechas, o solo exactos al minuto o menos, y en el rango más restringido permitido por el tipo, puede usar SMALLDATETIME y reducir esos valores de índice a 4 bytes.