Tenemos una tabla que contiene los códigos de moneda válidos. Estamos eligiendo usar un valor numérico como la clave principal en lugar de un código de moneda ISO de 3 carbonos, por ejemplo.¿Debería una tabla de referencia incluir el valor numérico de la columna de identidad PK de 0?
El consenso general ha concluido que esta columna CurrencyId
debe contener valores que comiencen con cero. Dado que el dólar estadounidense es la moneda principal para nosotros, reclamó la primera posición con un valor de 0.
Mi idea es que las columnas de identidad no deberían comenzar en cero por el único motivo de que algunos idiomas inicializan los números a cero y como como resultado, el código de moneda puede configurarse involuntariamente en USD
cuando en realidad nunca fue asignado.
¿Estoy todo mojado? Preferiría asignar un CurrencyId
de 1 a USD
.
Lo que sea que decidas, solo asegúrate de documentarlo claramente en alguna parte y obtener el acuerdo de todos los desarrolladores y DBA acerca de la solución que elegiste. Además: si usas '0' como valor" real ", igual siempre puedes elegir, p. '-1' como un valor de marcador de posición para" desconocido "o" indefinido "y establece las columnas que hacen referencia a esta tabla para usar ese valor como valor predeterminado. –
@Chad: estoy de acuerdo contigo. [Esta pregunta tiene un tipo similar de discusión sobre enumeraciones] (http://stackoverflow.com/questions/7257409/should-an-enum-start-with-a-0-or-a-1/7257458#7257458) –
um, "¿Estoy todo mojado?" ?? – AakashM