Wed, May 11, 2011 at 10:37:03AM -0500, Juan Manuel Acuña Barrera escribió:
>> >> Juan Manuel, con esta información no sé si es el caso, y a lo >> mejor me "tiro a la piscina" mucho, pero si la mayor parte de atributos >> son de tipo cve_obs_*, donde "*" es algo así como un "evento" o similar, >> y teniendo un atributo id como PK, entonces podrías tal vez construir >> una tabla del tipo: >> >> id FK, >> tipo_evento un domain de tipo enum o varchar, >> valor integer, >> PRIMARY KEY(id,tipo_evento) >> >> No sé si te valdrá... Eso además permitiría de forma sencilla >> seleccionar por "eventos"... >> > >En lo que mencionas, podría quedar algo así (por ejemplo)? > >id referencia fecha_generacion_registro >monto >23139 2345 2011-04-30 > 24150 > >Y en otra tabla: > >id referencia tipo_evento > valor >2281 2345 cve_obs_apertura > 14 >2282 2345 cve_obs_primer_asignacion > 21 >2283 2345 cve_obs_cierre > 23 >... > Bueno, analizar sobre datos y no sobre el DDL de las tablas es difícil, pero: - "referencia" (primera tabla) ¿es no nulo y único? Si es así, elimnina el id y marca la referencia como PK. En caso contrario, elimina la referencia de la tabla segunda e incluye el id. - en la segunda tabla, ¿qué es el id? Si es un identificador único de dicha tabla, me plantearía en su lugar usar como PK la dupla (FK a la primera tabla, tipo_evento) - haría (si no lo es) tipo_evento un DOMAIN de tipo: CREATE DOMAIN _tipo_evento AS varchar CHECK (VALUE IN ('cve_obs_apertura', 'cve_obs_primer_asignacion', 'cve_obs_cierre', ...)); Saludos, Álvaro -- Álvaro Hernández Tortosa ----------- NOSYS Networked Open SYStems - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda