Ver Mensaje Individual
  #11 (permalink)  
Antiguo 22/07/2015, 05:39
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Relacionar 3 tablas

Cita:
Y la tabla con los tipos de piloto es porque los pilotos se pueden repetir en varios coches, pero no todos son pilotos
Eso suena algo contradictorio...
SI un X individuo es piloto, y puede haber un segundo individuo relacionado con el mismo vehículo, pero no es piloto, entonces no puede estar en la misma tabla. Podría ser un esquema padre->hijo, donde haya una entidad principal y ambos individuos fuesen instancias de una entidad de segundo grado, pero NO pueden estar ne la misma tabla sino no cumplen la misma función.
Ponerlos en la misma instancia sería un error incluso en programación.

Ahora bien, volviendo a esto:

Cita:
cada coche puede tener uno o dos choferes, pero al tener dos choferes uno es piloto y el otro es copiloto. Incluso puede un chofer ser piloto en un auto y copiloto en otro o viceversa.
Este esquema resulta insuficiente para poder crear las relaciones que se infieren de la descripción.
Cita:
choferes:
======
codigo_chofer int
nombres varchar2(40)

tipo_chofer:
=======
id_tipo int
tipo_chofer varchar2(20)

coche:
====
codigo_coche int
placa_coche varchar2(15)
El tema es que si un mismo vehiculo puede ser conducido en diferentes momentos del tiempo por un mismo chofer, con un copiloto registrado (supongamos opcional), y el copiloto puede ser chofer en otro momento del tiempo, entonces está faltando al menos una tabla que defina los momentos del tiempo donde eso suceda.
Usualmente en una empresa de transporte de cargas o pasajeros, eso se resuelve con una tabla "Viajes" o bien "Servicios", que determina inicio, final, fecha, origen, destino, chofer titular y chofer suplente, como mínimo.
En ese contexto el vehículo y los choferes se relacionan con el viaje para un momento dado del tiempo.
Si además el chifer y su copiloto intercambian posiciones durante el mismo servicio (por requisito legal de tiempo maximo de manejo continuado), entonces se requiere una tabla adicional que establezca los periodods de manejo relacionados con la tabla del servicio.

¿Se entiende?

En esencia, para un sistema mas o menos realista, un esquema de tres tablas es insuficiente para aportar información fidedigna y consistente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)