Ayuda diagrama E-R

Hola a todos, no sabia donde ponerlo, nisiquiera si se pueden/deben hacer este tipo de consulta pero bueno... si no es asi espero que los moderadores lo eliminen o muevan.

Bueno, mi problema es que tengo que hacer una practica y lo que "menos" importa es el diagrama Entidad Relacion. Digo "menos" por que se que si no esta bien hecho luego vienen mil inconsistencias y es una locura. He hecho un diagrama, pero la verdad que no estoy muy seguro. Agradeceria mucho que alguien que sepa de esto me ayude un poquito que es muy poca cosa, pero no quiero despues de tener toda la aplicacion montada darme cuenta que el diseño ER es una patata.

Os pongo el enunciado para que veais

Una compañía aérea desea desarrollar un sistema informático para facilitar a sus clientes la compra de billetes a través de Internet. Para ello, la compañía, de nueva creación, tiene pensado ofrecer los siguientes destinos:

Aeropuertos Origen [Madrid y Barcelona] *
Aeropuertos Destino [Paris, Londres y Berlín] *
*Aunque el sistema permitirá dar de alta nuevos orígenes y destinos.

La compañía dispone del nuevo avión modelo Airbus A380 con 75 plazas de capacidad, idénticas en categoría y servicios asociados. En la actualidad, la compañía dispone de un avión por cada posible ruta, es decir dispone de 6 Airbus A380. Además los precios asociados a estos viajes se desglosan en los siguientes conceptos:

Precio TOTAL [Billete, Tasas Aeropuertos, Impuestos (IVA-16%)]

Estos conceptos son establecidos por el administrador del sistema, dándolos de alta para cada posible ruta. El cliente podrá acceder al sistema y sin más, el sistema le presentará un menú con diferentes opciones para poder elegir:

Usuario [Origen/Destino, Ida/Vuelta, Fechas, Número viajeros]

Una vez efectuada su posible viaje el sistema deberá verificar si es posible, es decir, si quedan plazas y si es así se presentará el presupuesto del viaje solicitado. Si el cliente desea comprar los billetes se le solicitará además otra información extra necesaria para realizar la operación correctamente:

Compra [Datos personales, número de VISA]

Si la compra es aceptada se le presentará al cliente un resumen de la operación realizada con los datos más importantes entre ellos el localizador que será un identificador único para cada compra, que deberá guardar el cliente para su presentación en el Aeropuerto
origen de su viaje. El localizador será una cadena alfa-numérica de 6 caracteres como por ejemplo (NIK23A). La aplicación NO permitirá cambios en las compras efectuadas por los clientes.

El administrador podrá, además de establecer los precios de los billetes y añadir algún viaje más al sistema, podrá obtener del sistema información estadística sobre distintos parámetros como:

Listados [Número Viajeros por Vuelo, Total Ganancias por Vuelo y en TOTAL, Viajeros por Vuelo, etc.]


Tengo locacizadas las entidades y las relaciones pero me gustaria otros puntos de vista.
Muchas gracias por adelantado
Espero buestras opiniones.
;)
Bueno, así por encima se me ocurren varias cosas. Primero una entidad Cliente con todos sus datos. Luego una entidad Viaje, con, almenos, los campos Codigo, Origen, Destino, Precio, Plazas... Luego una entidad Compra que relacione las tablas Viaje con Cliente, para tener ahí los campos DNI, Codigo_viaje y Identificador, que seria clave primaria. Esto suponiendo que se cumple la relacion 1 cliente -> 1 Identificador (que es lo lógico), no está claro si un cliente puede hacer varias reservas a su nombre, lo que complicaría algo la estructura, pero supongo lo lógico. Así, podrías calcular facilmente el numero de plazas disponibles y ver los listados que te dicen al final.

Podriamos tener una entidad Aeropuerto, con la ciudad y demás datos. En cambio, una entidad Avion no la veo util ya que parece que sólo hay un tipo de avión. No se como podrías guardar el número de aviones que tiene la empresa.

No sé que mas decirte, tienes que estar seguro, que como dices es muy importante. Esto es simplemente una idea, no le he dedicado mucho tiempo, que es lo que hace falta. No me culpes luego a mi eh !! ;)

Si tienes algunda duda, ya sabes [beer][beer]
puf!
no veas, seguro que las exo? o quieres que te lo agamos nosotros? [pos eso]
yo tengo que sacar unos esquemas de navegacion, y normalizar unas tabalas...si alguien se ofece [sati]
Me viene bien como ejercicio y tengo algo sacado, voy a ver si cumple toda la semántica que expresa el problema. Pero como bien comentan, sólo pondré mi diagrama si tú pones el tuyo para demostrar que si que te lo has currado al menos.
[+risas] La verdad que si lo tengo hecho e implementado en un modelo "modelo-vista-controlador" con java, usando servlets, y jsp. El problema viene que la tengo que presentar en septiembre, y aun no esta acabada del todo, pero ya he visto que segun avanzaba en la practica el modelo que hice no quedaba del todo bien y tenia algunas fallas.

Ahora es tarde, pero mañana os pongo por si alguien tiene interes el esquema que hice y el esquema por el que lo quiero cambiar. Tambien ofrezco por si alguien tiene interes en conocer algo mas del tema los archivos .java y .jsp solo que para hacerlos funcionar tienes que tener el tomcat (o mucho mas sencillo el netbeans).

La verdad que es un tema bastante interesante para montar aplicaciones web. Un saludo.

Un saludo a todos y gracias por contestar
Nos vemos

Bueno, edito y os los pongo rapidamente para que veais que os parece como esta ahora. Mañana os subo una imagen del diagrama para que lo veais mucho mas claro

Como lo tengo:

TABLAS :
VUELOS(codigo,salida,origen,destino,hora_salida,duracion,preciocapacidad,avion)
ORIGENES(cod_origen,ciudad)
DESTINOS(cod,destino,ciudad)
AVIONES(cod_avion,nombre_avion,num_pasajeros)
CLIENTES(dni.nombre,apellido1,apellido2,cod_vueloida,cod_vuelovuelta,num_vuelos,identificador,precioviaje,num_viajeros,tar_credito)
ADMINISTRADORES(id,nombre,apellido,usuario,clave)

RELACIONES:
VUELOS-ORIGENES(cod_origen,origen)
VUELOS-DESTINOS(cod_destino,destino)
VUELOS-AVIONES(cod_avion,avion)
VUELOS-CLIENTES(codigo,cod_vueloida,cod_vuelovuelta)

De esta manera da unos problemillas a la hora de controlar si un cliente lleva varios vuelos comprados, ademas de no poder controlar los datos de los vuelos de un cliente si realiza varias compras.
Tambien es un problema que un cliente se identifique por su tar de credito porque solo puede comprar con la misma.

Mañana os subo las soluciones que habia pensado y los diagramas de ambas.

De nuevo un saludo y gracias.
No podrías ahorrarte una tabla "fusionando" ORIGENES y DESTINOS ? Supongo que un mismo vuelo puede ser origen y destino, podrías tener un campo que pudiera tener 3 valores, o origen o destino o origen+destino. No se si es una chapuza o si es correcto pero ahorra una tabla. Por cierto, creo recordar que los nombres de las tablas siempre son en singular, no en plural.

Suerte!
A nivel de entidades lo tienes parecido a mi. Yo tengo una tabla llamada aeropuerto en vez de las tuyas de orígenes y destinos, y otra de avión.
Estas dos entidades se relacionan (relacion RUTA) con una relación ternaria: RUTA se relaciona con una entidad avion, con una entidad aeorpuerto con rol 'origen' y una entidad aeropuerto con rol 'destino'

Esta relacion la agrupamos en una agregación para tratarla como una entidad más.



También tengo una entidad reserva y una entidad cliente. Se relacionan con la agregación anterior por una relación HACE (de forma que un cliente hace una reserva para una RUTA concreta.
En la reserva tienes el ID único que se necesita para el cliente y eso.


No le he dado muchas más vueltas y no he calculado las cardinalidades. Iré actualizando esto si veo que está mal, que lo estará ya que en BDs no soy muy bueno :P
Bueno, veo que estamos mas o menos en lo mismo. :D

k'sChoice Tienes razon en las dos cosas. Las entidades son en singular.... [toctoc] y sobre lo de ahorrarte una tabla tienes razon, ahora que pongo los diagramas lo tengo asi, pero en un principio hice dos porque al llenar los datos de los jsp con las tablas era menos lio si buscaba en tablas distintas que si tenia que seleccionar con algun criterio en una sola tabla. Muchisimas gracias [oki]

zheo Creo que ahora estas en la solucion que tenia intencion de usar. Una sla entidad para las ciudades de origen y destino, y con el detalle de la reserva (yo la trato como billete) soluciono el problema de no poder guardar los datos de distintos vuelos para un solo cliente. Gracias a los dos [oki]

Os pongo los dos diagramas para que veais como creo que lo dejare al final.

Por cierto, sigo ofreciendo por si alguien quiere conocer algo mas los archivos y demas ya implementados.... eso si con un diagrama ER no del todo optimo... [carcajad]

Un saludo.

Adjuntos

Uno de los dos se ha perdido ein? XD

Yo diría que eso no es un diagrama E-R (faltan las relaciones, las cardinalidades...) y además, en el primero te faltaría alguna cosa como relacionar la tabla Billete con Ruta ya que en un billete debería constar el cliente y el vuelo o la ruta...
SIIII, ya se que le faltan las relaciones, con las cardinalidades los atributos y demas!!, pero eso son pequeñeces..... [sonrisa] lo que quiero es saber la estructura idonea, ademas currarselo con el paint.... jijijij. Bueno, para ser justo tengo que darte la razon de nuevo... lo que he hecho es una chapuza!!!! [+risas] [qmparto] [+risas] [qmparto] pero era para que me entendierais... si puedo mañana (o mejor el lunes) os cuelgo el diagrama como dios manda que ahora en 10 minutos empieza el findeeeeeeeeeee!!!! [babas]

en el primero te faltaría alguna cosa como relacionar la tabla Billete con Ruta ya que en un billete debería constar el cliente y el vuelo o la ruta...


Esta relacionado shacho!!! :Ð

En el primer diseño que hice no tenia relacionados los administradores con ninguna otra entidad, lo hacia todo "por software" [666] pero como tenia tiempo hasta septiembre habia pensado hacerlo todo como dios manda.

Por cierto, se me ha ido la pelotay y el primer diagrama de los dos, es el que tengo pensado como definitivo.

bueno, muchas gracias. Os agradezco mucho las opiniones. Si puedo ayudaros en alguna cosilla, ya sabeis que podeis contar conmigo.
9 respuestas