Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/03/2009, 15:48
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Una duda con un modelo

Con mucho gusto Drknow

Vamos a tomar una tabla personas, una tabla empleados y una tabla clientes. Empleados y clientes serán hijas de personas ya que tienen atributos en común.

//creamos las tablas.

Código sql:
Ver original
  1. CREATE TABLE personas(cedula INTEGER PRIMARY KEY, nombre text, direccion text, telefono text);
  2.  
  3. CREATE TABLE cliente(cod_per INTEGER, profesion text, FOREIGN KEY (cod_per) REFERENCES personas(cedula));
  4.  
  5. CREATE TABLE empleado(cod_per INTEGER, fecha_ingreso DATE,cargo text,sueldo FLOAT, FOREIGN KEY (cod_per) REFERENCES personas(cedula));

//Ingresamos 2 personas, una será empleado otra cliente.
Código sql:
Ver original
  1. INSERT INTO personas VALUES(132,'daniel orozco','cra 16 # 3-90','8890203');
  2. INSERT INTO personas VALUES(133,'ana maria','cra 17 # 2-97','8798201');

//ingresamos empleado
Código sql:
Ver original
  1. INSERT INTO empleado VALUES(133,'2008-01-01','asesor',1200); //ana maria es empleada

//ingresamos cliente
Código sql:
Ver original
  1. INSERT INTO cliente VALUES(132,'Ingeniero'); //daniel ahora es cliente

Si queremos tener toda la información de empleado sería con:

Código sql:
Ver original
  1. SELECT personas.*,fecha_ingreso,cargo,sueldo FROM personas INNER JOIN empleado ON personas.cedula = empleado.cod_per;

Para el ingreso de los datos, podrias hacer uso de un procedimiento almacenado, que te ingrese el empleado en la tabla persona y en la tabla empleado en un solo llamado.

Espero haberte aclarado tus dudas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 30/03/2009 a las 15:56