[Pgsql-ayuda] Tipo de datos para Primary Key

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Tue, 5 Aug 2003 14:10:22 -0400


On Tue, Aug 05, 2003 at 09:37:41AM -0300, Emilio Capolupo wrote:

> Tengo una tabla compuesta por datos filiares de personas que se identifican
> por un numero de 11 digitos (cuil para los argentinos). Este numero ser? la
> Primary Key de la misma.

Sugerencia: no uses ese numero de llave primaria.

Aqui en Chile tenemos un numero similar (RUT) que se supone que es unico
a cada persona, y podria usarse como llave primaria para las personas,
pero en la practica hay unos pocos problemas con duplicados que impiden
usarlo como PK.  (El origen del problema tiene que ver con la asignacion
de estos RUTs a extranjeros por parte de consulados, creo recordar).

Es _muy_ raro encontrarse un problema de estos.  Sin embargo basta una
vez para que ya no sirva :-(

Por todo lo anterior te sugiero no usar ese numero como PK y darles un
INTEGER a cada uno; que el cuil quede como dato dentro de la tabla.

Ahora, como almacenar el cuil?  Te sugiero dejar un INTEGER para el
numero mismo y otro campo ("char") para el digito verificador.  Aqui en
Chile el RUT es de la forma "62.912.123-4", entonces olvidate de los
puntos y guiones y guarda 62912123 en un campo y 4 en otro.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Ellos andaban todos desnudos como su madre los parió, y también las mujeres,
aunque no vi más que una, harto moza, y todos los que yo vi eran todos
mancebos, que ninguno vi de edad de más de XXX años" (Cristóbal Colón)