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

[SOLUCIONADO] Duda diseño para servicios/productos.

Estas en el tema de Duda diseño para servicios/productos. en el foro de Bases de Datos General en Foros del Web. Hola, tengo una simple duda ya que soy algo novato con esto de la base de datos, me gustaría saber cual seria la solución mas ...
  #1 (permalink)  
Antiguo 26/08/2015, 09:34
 
Fecha de Ingreso: septiembre-2013
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Duda diseño para servicios/productos.

Hola, tengo una simple duda ya que soy algo novato con esto de la base de datos, me gustaría saber cual seria la solución mas adecuada, o la que implementaríais vosotros. Es una base de datos para una estética, y tiene que tener un control total de las comandas, una comanda puede tener servicios y/o productos,, cuando he terminado una comanda me gustaría hacer estadístico de por ejemplo que servicio ha ganado mas dinero. Se aceptan ideas, mis ideas principales son;
  #2 (permalink)  
Antiguo 26/08/2015, 10:15
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, 4 meses
Puntos: 2658
Respuesta: Duda diseño para servicios/productos.

Los servicios son productos. Cambia la categoría de cada uno u otros datos así, y si tienen datos diferentes, no comunes, se hace una tabla maestra de productos, y dos tablas hijas, una para Servicios y otra para ProductosFisicos.

Lo que NO DEBES hacer es dos listas de detalle de la Orden. Eso es incorrecto.
__________________
¿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 26/08/2015, 10:23
 
Fecha de Ingreso: septiembre-2013
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Duda diseño para servicios/productos.

por lo tanto con la opción1 bastaría no?
  #4 (permalink)  
Antiguo 26/08/2015, 11:33
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, 4 meses
Puntos: 2658
Respuesta: Duda diseño para servicios/productos.

La opción 1 está mal si me atengo a lo que describes en las tablas de la opción 2.
En realidad necesitas una combinación de ambas y cinco tablas:
1) Orden.
2)DetalleOrden.
3) Producto.
4) Producto_Servicio
5) Producto_Fisico
donde las dos ultimas heredan la PK de la tercera.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 26/08/2015, 13:54
 
Fecha de Ingreso: septiembre-2013
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Duda diseño para servicios/productos.

Gracias por contestar, pero no entiendo la tabla productos(3) para que seria necesaria?
  #6 (permalink)  
Antiguo 26/08/2015, 14:09
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, 4 meses
Puntos: 2658
Respuesta: Duda diseño para servicios/productos.

Es la tabla "Padre" de los productos. Evita tener que crear dos tablas de detalle, ya que en una dabla de detalle no puedes apuntar una misma FK a dos tablas diferentes, y crear dos tablas con el mismo propósito (como pones en la opcion 2) es un error de diseño.
¿Nunca has estudiado el caso de jerarquía y herencia en el modelo relacional extendido?

Este sería un caso de "Empleado" en un DER Lógico:



Cada una de las entidades es una débil, y eventualmente una tabla que hereda su PK de la primera o "padre".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/08/2015, 06:19
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, 4 meses
Puntos: 2658
Respuesta: Duda diseño para servicios/productos.

Antes que nada, @1304654: Este es un foro publico, las preguntas y las respuestas son siempre publicas. En consecuencia, yo no respondo consultas por mensaje privado (MP). Cualquier duda, tienes que postearlo aquí.

Yendo al tema de tu pregunta, respecto a cómo queda esa tabla productos y que lleva, me parece que el problema es que no conoces el modelo Entidad - RElación. ¿Me equivoco?
Digo esto porque tu duda se responde sola cuando menciono que cada sub-entidad de Producto es una entidad débil, y por definición eso indica que la tabla maestra (Producto) es la que contiene las PK de los productos, y los atributos (datos) que sean comunes, tales como números de codigos de barra, marca de fábrica, nombre del producto.
Por su lado cada una de las otras (Producto_Servicio y Producto_Fisico) lleva como PK la FK que apunta a Producto, y como atributos sólo aquellos que son característicos de la entidad.
Esto último sería para el caso de Servicio el Tiempo_servicio, Tipo_servicio, y otros que puedas querer poner. En el caso de Producto_Fisico sería la PF_Presentacion (tipo de envase o unidad menor), así como todo otro atributo comun a los que indiques.

¿Se va entendiendo?

Es entonces la PK de Producto la que va como FK en Detalle_Orden, y la relación con cada subclase de producto (fisico o de servicio) es transitiva, para lo cual el SQL usa los JOIN...

Dime exactamente qué conoces del modelo E-R. Si entendemos lo que sabes es mas facil saber qué tenemos que explicarte. Con lo que comentas hasta ahora no es posible deducirlo completamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: diseño
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 16:05.