Para ser franco Alberto, yo pensaría en una estructura JSON, como dices
cada personas puede tener X roles y otra Y roles... vaya como que se pinta
sola.



> Gracias por responder, bueno tengo una 1ra versión del modelo que deseo
> implementar:
>
> *Modelo 1:*
>
> Crear las tablas:
>
> Tipo_Persona
> Persona
> Tipo_Relacion
> Persona_Relacion
>
> Tipo_Persona
> ID_TIPO_PERS  (PK)
> NOM_TIPO_PERS
>
> Persona
> ID_PERS           (PK)
> ID_TIPO_PERS  (PK)
> NOM_PERS
> APPAT_PERS
> APMAT_PERS
> TIPO_DOCUM
> NUM_DOCUM
>
> Tipo_Relacion
> ID_TIPO_RELA (PK)
> NOM_TIPO_RELA
>
> Persona_Relacion
> ID_RELA            (PK)
> ID_PERS
> ID_PERS_RELA
> ID_TIPO_RELA (FK)
>
> *Modelo 2:*
>
> Crear las tablas:
>
> Persona
> Tipo_Relacion
> Persona_Relacion
>
> Persona
> ID_PERS           (PK)
> ES_PROVEE     Campo Char(1) si es 1 es Proveedor
> ES_CLIENTE     Campo Char(1) si es 1 es Cliente
> ES_EMPLEA     Campo Char(1) si es 1 es Empleado
> NOM_PERS
> APPAT_PERS
> APMAT_PERS
> TIPO_DOCUM
> NUM_DOCUM
>
> Tipo_Relacion
> ID_TIPO_RELA (PK)
> NOM_TIPO_RELA
>
> Persona_Relacion
> ID_RELA            (PK)
> ID_PERS
> ID_PERS_RELA
> ID_TIPO_RELA (FK)
>
> El Modelo 2, en la tabla Persona tiene los campos ES_PROVEE, ES_CLIENTE,
> ES_EMPLEA, puede ser una buena salida de momento, pero si existe la
> necesidad de otro tipo o tipos tendria que crear nuevos campos
> ES_NUEVOTIPO1, ES_NUEVOTIPO2, etc..
>
> Saludos.
>
>
>
> El mar., 13 sept. 2016 a las 16:18, Hellmuth Vargas (<hiv...@gmail.com>)
> escribió:
>
>> Hola Lista
>>
>> Estoy de acuerdo con Gilberto: lo mejor es mantener una tabla PERSONA y
>> mas bien en cada operación se define el ROL que cumple cada persona en
>> la
>> misma: es cliente, proveedor o contacto
>>
>> El 13 de septiembre de 2016, 16:38, Gilberto Castillo<
>> gilberto.casti...@etecsa.cu> escribió:
>>
>>>
>>> > Hay casos en que un Contacto puede ser de N Clientes y tambien puede
>>> ser
>>> > Cliente en ese caso trabajarlo en una sola tabla, no lo veo como.
>>>
>>> No, no no he dicho que quites tus tablas de clientes etc. solo que
>>> todas
>>> toman  información de personas, solo eso.
>>>
>>>
>>> >
>>> > Alguna idea.
>>> >
>>> > Saludos.
>>> >
>>> > El mar., 13 sept. 2016 a las 15:35, Gilberto Castillo (<
>>> > gilberto.casti...@etecsa.cu>) escribió:
>>> >
>>> >>
>>> >> > Gracias por responder Gilberto.
>>> >> >
>>> >> > Al manejar todo en una sola tabla Persona (Empleados, Clientes y
>>> >> > Proveedores) me queda claro, pero mi duda es con los Contactos de
>>> >> Clientes
>>> >> > que también pueden ser Clientes. Se me ocurre tener una tabla
>>> >> > PersonaContacto con:
>>> >> >
>>> >> > ID_TBL_CONTACTO PK de tabla PersonaContacto
>>> >> > PERSONA_ID  = ID de tabla Persona CLIENTE
>>> >> > CONTACTO_ID = ID de tabla Persona CONTACTO
>>> >>
>>> >> Al final todos son personas, así con un codificador de su estados ya
>>> >> tienes.
>>> >>
>>> >>
>>> >> > Pero no tendria relación, alguna idea.
>>> >> >
>>> >> > Saludos.
>>> >> >
>>> >> >
>>> >> > El mar., 13 sept. 2016 a las 15:10, Gilberto Castillo (<
>>> >> > gilberto.casti...@etecsa.cu>) escribió:
>>> >> >
>>> >> >>
>>> >> >> > Hola a todos, quisiera contar con su apoyo, con respecto a lo
>>> >> >> siguiente:
>>> >> >> >
>>> >> >> > Siempre he trabajado el registro de Empleados, Clientes y
>>> >> Proveedores
>>> >> >> por
>>> >> >> > separado, Contactos de Clientes y Contactos de Proveedores
>>> tambien
>>> >> por
>>> >> >> > separado, pero en una empresa en la cual voy a implementar un
>>> >> software
>>> >> >> de
>>> >> >> > ventas, tienen una particularidad, pues una persona puede ser
>>> >> >> Empleado,
>>> >> >> > Cliente y Proveedor a la vez.
>>> >> >> >
>>> >> >> > He pensado tener en una sola tabla el registro de Empleados,
>>> >> Clientes
>>> >> >> y
>>> >> >> > Proveedores y tener tablas independientes por cada uno si se
>>> >> requiere.
>>> >> >> >
>>> >> >> > De igual manera una sola tabla para la direccion de Empleados,
>>> >> >> Clientes y
>>> >> >> > Proveedores.
>>> >> >> >
>>> >> >> > Pero hay un caso mas, un Contacto de un Cliente puede ser
>>> tambien
>>> >> un
>>> >> >> > Cliente o Proveedor.
>>> >> >> >
>>> >> >> > Alguna idea de algún compañero que haya tenido un caso similar,
>>> que
>>> >> >> pueda
>>> >> >> > ayudarme por favor.
>>> >> >> >
>>> >> >>
>>> >> >> Bueno te creas una tabla personas, de hechos los sistemas nuestro
>>> >> parte
>>> >> >> siempre de esa tabla, pos la persona es la célula más atómica por
>>> lo
>>> >> >> general.
>>> >> >>
>>> >> >>
>>> >> >> --
>>> >> >> Saludos,
>>> >> >> Gilberto Castillo
>>> >> >> ETECSA, La Habana, Cuba
>>> >> >>
>>> >> >>
>>> >> >
>>> >>
>>> >>
>>> >> --
>>> >> Saludos,
>>> >> Gilberto Castillo
>>> >> ETECSA, La Habana, Cuba
>>> >>
>>> >>
>>> >
>>>
>>>
>>> --
>>> Saludos,
>>> Gilberto Castillo
>>> ETECSA, La Habana, Cuba
>>>
>>>
>>> -
>>> 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
>>>
>>
>>
>>
>> --
>> Cordialmente,
>>
>> Ing. Hellmuth I. Vargas S.
>> Esp. Telemática y Negocios por Internet
>> Oracle Database 10g Administrator Certified Associate
>> EnterpriseDB Certified PostgreSQL 9.3 Associate
>>
>>
>


-- 
Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba


-
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