Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Diseño de Base de Datos HERENCIA

Estas en el tema de Diseño de Base de Datos HERENCIA en el foro de Bases de Datos General en Foros del Web. Tengo una Duda que ya quiero quitármelo para comenzar a Programar los Procesos Almacenados y es esto, En la presente Imagen: PERSONA es la Tabla ...
  #1 (permalink)  
Antiguo 06/06/2012, 23:24
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Diseño de Base de Datos HERENCIA

Tengo una Duda que ya quiero quitármelo para comenzar a Programar los Procesos Almacenados y es esto, En la presente Imagen:



PERSONA es la Tabla General y de ahí Derivaremos si es CLIENTE, PROVEEDOR, TRABAJADOR, ya eso es Programación y Procesos Almacenados.

Pero bueno, tengo una Duda con Respecto a Cliente, mi CLIENTE puede ser Natural o Jurídico, por lo que he pensado en Poner un Campo Booleano en la tabla CLIENTE (agrego un campo llamado "Personanoj" que 1 sea Natural y 0 Jurídico) ¿Es Dable, Que Opinas?, Ahora si es persona Jurídica ¿donde queda el Nombre de razón social? pues lo que he pensado es que se Almacene en el Campo Nombre de la Tabla Persona. Quiero saber vuestra opinión. y si es que me das sugerencias para ir mejorandolo. Gracias.
  #2 (permalink)  
Antiguo 07/06/2012, 07:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diseño de Base de Datos HERENCIA

Si es PERSONA física o jurídica es un atributo de PERSONA no de cliente.... y apartir de ahí todo te funcionarà, un trabajador no , pero un proveedor tambien puede ser jurídico no?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 07/06/2012, 11:53
 
Fecha de Ingreso: noviembre-2009
Ubicación: Chimbote
Mensajes: 60
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Diseño de Base de Datos HERENCIA

Claro tienes razón, ahora ya en la tabla persona he creado un campo llamado "naturaljuridico", me aceptara 1 y 0.

(1) Natural
(0) Jurídico

Es que no tenia una definición clara, mis Trabajadores también son Persona Naturales al Contar con un numero de RUC para trabajar como tal, ya que netamente estas personas deben de contarlos si o si.

Ahora mis Clientes, pueden ser Físicas o Jurídicas y mis Proveedores pueden ser Solamente Jurídicas.

Ahora creo que esta parte ya esta entendida, pero tengo otra y ultima Duda y es que ya si registro digamos un Cliente Jurídico o una Empresa Proveedor (Jurídica), Estas necesitara sus Personas de Contactos y/o Personas Legales, ¿como hago esta relación?, tendría que sacar otra relación de Cliente a Persona, o tendría que crear una tabla netamente para personas de contacto. gracias.
__________________
Para llegar a algo se debe de empezar barriendo o pateando Lata!! XD
  #4 (permalink)  
Antiguo 08/06/2012, 01:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diseño de Base de Datos HERENCIA

Si la relacion es 1:n es decir cada persona jurídica puede tener n personas (fiscas) de contacto y una persona física no puede ser representante de mas de 1 persona jurídica. En este caso lo resuelves con un campo mas en persona para guardar el id de la persona representada....

Si la relación es n:m luego necesitas una tabla auxiliar con dos FK referenciadas a persona....

Otra solución es considerar que las personas de contacto son otro tipo de persona y guardarlas en una tabla a parte.... es muy posible que de esas personas no tengas todos los datos....aun que así en esencia estas forzando un poco el modelo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 08/06/2012, 11:27
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Diseño de Base de Datos HERENCIA

Y tu ¿como lo manejarias?, osea tanto Cliente, como Proveedor y Trabajador como lo manejarías, porque he visto que lo trabajan por tipos y todas los campos pasan a formar parte de la tabla persona.
  #6 (permalink)  
Antiguo 10/06/2012, 12:46
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Diseño de Base de Datos HERENCIA

amigo primero que todo en el modelo relacional no se habla de "HERENCIA", la herencia y el polimorfismo son casi exclusivos de la programcion orienta a objetos.

Cuando existe una relación no exclusiva por ejemplo una persona puede ser simultáneamente estudiante y docente se puede modelar con 2 tablas, sin son excluyentes incluyes los atributos en la misma tabla.

Última edición por BSD_FAN; 10/06/2012 a las 20:45
  #7 (permalink)  
Antiguo 11/06/2012, 01:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diseño de Base de Datos HERENCIA

El modelo teorico de tablas y el modelo físico no tienen por que ser iguales. Esta claro que se podria manejar en una sola tabla.... pero si te fijas en los campos que tienes para cada tipo de persona veras que para los trabajadores tienes muchos mas campos, luego para todos los clientes y proveedores esos campo propios del trabajador quedaran en blanco con lo que se usará mal el espació en disco....

Un apropuesta

Personas
Campos comunes a todas las personas

Trabajadores
Campos propios de los trabajadores

Terceros
Analizando un poco veras que practicamente clientes y proveedores pueden tener los mismos campos y con solo agregar un campo llamado tipo donde indique si es proveedor o cliente (o los dos, que se podria dar) te funcionará.


Contactos

No son personas de la tabla Personas, ya que con el identificador del tercero, un nombre y un telefono seguramente tienes bastante.

Luego yo crearia como minimo tres vistas para trabajar con mas comodidad

ViewTrabajadores
Trabajadores join Personas

ViewClientes
Terceros join Personas
where cientes

ViewProveedores
Terceros join Personas
where proveedores
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: diseño, herencia, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:00.