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

problema con diseño de bbdd de servicio tecnico

Estas en el tema de problema con diseño de bbdd de servicio tecnico en el foro de Bases de Datos General en Foros del Web. hos explico el caso un poco , pero como vereis el problema esta en el diseño de las tablas de reparacion de un servicio tecnico ...
  #1 (permalink)  
Antiguo 18/06/2012, 15:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 16
Antigüedad: 17 años
Puntos: 0
problema con diseño de bbdd de servicio tecnico

hos explico el caso un poco , pero como vereis el problema esta en el diseño de las tablas de reparacion de un servicio tecnico

gracias

TABLAS

cliente: es el cliente del servicio tecnico.
equipo: es el equipo que nos han dejado.
Operación: es lo que le hacemos al pc (formatear, cambio de componente, antivirus, etc ...)
componente: es el componente que cambiaremos o venderemos (tarjeta grafica, procesador, etc)
reparacion: es el conjunto de operaciones que le haremos al pc. y componentes que debemos sustituir en caso de que sea conveniente

CAMPOS

cliente: id_client, nombre, etc ..
equipo: id_equip, marca, etc ...
operación: id_operacio, nombre, descripcion, precio, horas
componente: id_component, nom_component, precio
reparacion: id_reparacio, id_client, id_equip, dataentrada, etc ..


entonces aquí viene el problema, tengo que hacer una o unas tablas que nos permitan guardar reparaciones, cada reparacion se compone de varias operaciones y varios componentes.

1era pregunta: no se si el componente meterlo dentro de la operación según convenga es decir, si se cambia la tarjeta grafica metemos el id del nuevo componente. ->
************** ex => reparacion: id: 1, cliente: oriol, equipo: acero, operacion: cambio t.grafica, componente: nvidia | |

2 ª pregunta: una reparacion tiene diferentes componentes y diferentes operaciones ya la vez una operación puede tener diferentes componentes y un componente puede estar en diferentes reparaciones (ya que el mismo modelo de procesador, por ejemplo, lo podemos montar en diferentes equipos). es decir veo esta relación:

reparacion N <-> N operacion N <-> N componente N <-> reparacion

es decir creo que sería una ternaria

3era pregunta.

para ordenarlo un poco lo que quiero hacer es,

una reparacion requiere una operación o más
un componente requiere una operación

una reparacion no tiene pq tener un componente
una operación no tiene pq tener un componente

ej: tenemos que formatear un ordenador -> la reparacion requiere la operación de formatear, pero no ningún componente
EX2: tenemos que cambiar una tarjeta grafica -> la reparacion requiere una operación, la operación requiere un componente.

no se como solucionarlo XD jejeje
tengo que hacer la base de datos que hemos permita todo esto

GRACIAS
  #2 (permalink)  
Antiguo 18/06/2012, 18:08
Avatar de MainBoard  
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con diseño de bbdd de servicio tecnico

espero haberte entendido: el cliente Pablo lleva su PC a tu Servicio tecnico, lo ideal seria manejar esto como un BD de venta, osea se genera un pedido (un trabajo tecnico) y se crea un detalle de pedido (detalle de trabajo) por que? por que puede ser que no solo necesites cambiar la tarjeta grafica si no tambien cambiar RAM y no seria logico crear un nuevo registro para solo registrar ese cambio, tendrias por otra parte los tipo de operaciones y los tipos de componentes, si en caso que no cambiaras ningn componente bastas con que en la tabla de componentes tuvieras uno llamado NINGUNO asi cuando se leyera el registro y la operacion no necesito ningun componente y vieramos en el campo componente NINGUNO sabriamos que no se ocupo ningun componente, el esquema de la BD quedaria algo asi (en lo general tu veras que mas campos necesitas)
  #3 (permalink)  
Antiguo 18/06/2012, 18:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 16
Antigüedad: 17 años
Puntos: 0
Respuesta: problema con diseño de bbdd de servicio tecnico

buenas noches

efectivamente , lo de que se realice mas de una operacion lo tenia en cuenta, lo de la tabla detalle tambien

lo que me volvia loco es lo que mas o menos me has orientado, lo del campo ninguno, es decir siempre que se genere una linea tu podnrias tanto operacion como componente pero en el caso de no cambiar el componente, llamar al id fantasma ( ninguno )

no ?

es eso creo :D
  #4 (permalink)  
Antiguo 19/06/2012, 07:59
Avatar de MainBoard  
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: problema con diseño de bbdd de servicio tecnico

efectivamente , las tablas son matrices y uno de los fundamentos de las matrices es su dimencion la cual se representa (m x n) m filas por n columnas, no puede haber un registro asi:

campo1 campo2 campo3
registro1 X X X campo4
registro2 X X X X

que misteriosamente apareciera un campo4 para el registro2, cuando se crea una tabla los campos son los atributos que pueda tener y que necesitemos que tenga ese registro por ejemplo por que seria importante que todos los registros tuvieran el atributo componente, imagina que el usuario final de la BD necesite generar un reporte de todos los trabajos que no necesitaron cambio o colocacion de algun componente, como solucionamos eso? pues dando al atributo un valor nulo o ninguno, cuando digo nulo no me refiero a que acepte nulo si no algun valor que nos represente eso.

Ten muy en cuenta que en la tabla DetalleTrabajo los tres campos que se ven la imagen vendrian a ser PK para evitar duplicados de tuplas.

Etiquetas: bbdd, diseño, servicio, tabla, tecnico, campos
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 09:42.