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

Consulta sobre relaciones de una tabla!

Estas en el tema de Consulta sobre relaciones de una tabla! en el foro de Mysql en Foros del Web. Como están? Tengo una duda, tengo una BD terminada ya como me gusta y me he encontrado al final que me ha surgido una duda ...
  #1 (permalink)  
Antiguo 09/03/2014, 16:12
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Consulta sobre relaciones de una tabla!

Como están?

Tengo una duda, tengo una BD terminada ya como me gusta y me he encontrado al final que me ha surgido una duda al mirarla.

La BD contiene Ordenes de Trabajo de servicio técnico, maquinas a las que se les hará el servicio, y obviamente los clientes.

Separé las máquinas de las ordenes de trabajo, y con esto mantuve la relación de los clientes con las ordenes de trabajo y también los clientes se relacionan con sus productos.

Pero aquí veo que si los clientes se relacionan con sus productos tal vez no es necesario relacionar los clientes con las ordenes ya que podría tomar el id del cliente directamente desde los productos o estoy equivocado?

Pero también pienso que cuando quiera listar las ordenes de trabajo de algún cliente voy a tener que hacer un camino más largo para encontrar que ordenes corresponden a cada cliente.

A ver si pueden darme algún consejo en esto

Yo por mí creo que es más comodo tener la relación de clientes con las ordenes, y de clientes con los productos también.

Saludos!
  #2 (permalink)  
Antiguo 09/03/2014, 19:07
Avatar de 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: Consulta sobre relaciones de una tabla!

Cita:
Pero aquí veo que si los clientes se relacionan con sus productos tal vez no es necesario relacionar los clientes con las ordenes ya que podría tomar el id del cliente directamente desde los productos o estoy equivocado?
Estas equivocado, porque estás mirando las cosas como procesos y no como entidades de un sistema. No son las mismas cosas.

Una orden de trabajo siempre es de un cliente, por ende el cliente siempre está relacionado a la orden.
Un producto no pertenece a un cliente, o al menos no un producto como lo entendemos en análisis de sistemas orientados a BBDD. Un producto es algo que se le vende a un cliente, o bien un servicio que se le brinda a un cliente. Pero el producto no es del cliente en el contexto de la base de datos, ni aunque lo compre. En todo caso un cliente adquiere un producto, y esa adquisición se expresa en la factura de compra. Pero la relación con el cliente es indirecta: cliente->factura->producto.
¿Se entiende?
No existe relación directa entre un producto y un cliente. Es siempre transitiva.

Ahora bien, para otros usos, deberías empezar por definir qué es lo que entiendes por "producto" en tu sistema.

Cita:
Pero también pienso que cuando quiera listar las ordenes de trabajo de algún cliente voy a tener que hacer un camino más largo para encontrar que ordenes corresponden a cada cliente.
Si respetas la logica del sistema, no, porque como ya te dije, la orden siempre es de un cliente.

La idea es esta:
- Un cliente solicita X trabajo (existe una tabla OrdenTrabajo).
- Una misma orden puede contener N tareas (existe una tabla detalleOrdenTrabajo)
- Un item puede requerir N productos (existe una tabla ProductosDetalleOrden y otra Producto).
- Una orden se cobra por medio de una factura (existe una tabla Factura), la cual puede abarcar varios items, ordenes o productos (tabla DetalleFactura.
- Un producto puede tener varios proveedores (tablas Proveedor y proveedorProducto).

Y aquí me planto, porque el diseño se va volviendo más complejo a medida que debes detallar las entidades que pueden requerirse. Creo que como visión te acerca al modelado.
De todos modos, cuando tienes tanta complejidad ya no puedes hacerlo con simples sentencias SQL, sino que debes recurrir a una herramienta de modelado, como MySQL Workbench, ya que hay que plantearlo como diagrama para ir viendo todos los componentes y sus relaciones.

Y todavía no hemos hablado de normalización de bases de datos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/03/2014, 04:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Consulta sobre relaciones de una tabla!

Entiendo perfectamente!!! muy agradecido por la ayuda brindada.

En realidad lo que me generaba la duda es porque los productos de mi BD no son productos para la venta, sino Maquinas que me traen los clientes.

Y los clientes son los dueños de dichas máquinas por eso entendía que había una relación directa de los productos con las máquinas que traen.

Y la orden contiene a los clientes y a su máquina.

Siempre un placer leer las ayudas que brindas a los demás aclaras en muy poco tiempo varias dudas casi siempre!!!

Etiquetas: relaciones
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 18:23.