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