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

Responder a