planteamiento de base de datos
Publicado por abjk (2 intervenciones) el 06/08/2014 01:28:44
Buenas, me encuentro haciendo practicas en una empresa extranjera y me han pedido que les haga una pagina user friendly para vender sus productos porque antes tenian que apuntar los pedidos casi a mano en una hoja excel. Para hacer esto primero me han pedido que les haga una base de datos, no me han especificado que software preferian asi que me he puesto con Access ya que lo toque un poco durante los estudios. El problema es que no tengo muy fresco el como distribuir los diferentes campos. A grandes rasgos la empresa fabrica armarios para cableado de todas clases, y tienen diferentes modelos, con diferentes caracteristicas a elegir, de las que solo se pueden elegir una cada vez (tal clase de puerta, x clase de ventilacion...). A ver si esta foto lo explica un poco mejor:
Hay 3 clases de armarios, y una de ellas a su vez se divide en otras 2, pero tienen identicas caracteristicas. En la foto solo muestro la tabla de uno de los modelos de armarios (Model_TC), pero las 4 tablas de modelos tienen los mismos campos. Las tablas amarillas son caracteristicas que comparten todos los armarios, y las verdes son especificas para 1 o varios armarios. La tabla OPC contiene el numero de referencia de los 4 armarios asi como su nombre y una breve descripcion. Aqui muestro el contenido de una de las tablas de caracteristicas.
Todas son mas o menos iguales, hay varias posibilidades para cada caracteristica y solo puedes elegir una de cada. La idea seria conectar la base de datos a una pagina web y que empezaras eligiendo el modelo de armario, y a partir de ahi ir seleccionando las caracteristicas una por una, hecho esto se generaria un documento con el precio y las caracteristicas elegidas. Esta es la tabla OPC con la referencia de cada armario y su nombre, el armario TC se corresponde con la referencia ET.
Esta es la tabla especifica del armario TC, solo tiene un registro que obviamente es ET (texto), todos los demas campos son numericos para relacionarlos con la ID de las tablas de caracteristicas.
Tengo unas cuantas dudas al relacionar las tablas, por ejemplo, dado que el campo Bay (numerico) de la tabla MODEL_TC esta vacio y que quiero acceder al contenido de la tabla BAY_CC_TC a traves de IDBay1 (clave principal autonumerico), deberia forzar la actualizacion en cascada? En cuanto a las propiedades de la relacion, deberia dejarlo en la opcion 1 o cambiar a 2 porque el campo bay de MODEL_TC esta vacio? Mientras escribo tambien se me ocurre que tal vez no seria mejor cambiar la clave principal de las tablas de caracteristicas a las descripciones y asi me ahorraria campos numericos de Id?
Merece la pena mostrarlo todo mediante listboxes con querys (que me ponen pegas porque los campos enlazados son numericos y yo querria mostrar texto) o deberia eliminar las tablas de propiedades y crear listboxes manuales para cada campo en las 4 tablas de modelos de armarios y dejarme de complicaciones (aunque me parece chapucero)?
Como veis tengo un monton de dudas, desde el planteamiento de la base de datos (no se si habre cometido errores de base) hasta la decision de poner demasiadas ids numericas porque luego es un problema para hacer querys si quieres mostrar texto.
Ahora mismo tengo la base mas o menos asi (ref en MODEL_TC no es clave principal) y la idea seria conectar las tablas de los otros modelos a OPC y despues hacer igual que con MODEL_TC y las tablas de caracteristicas, pero algo me chirria y no se por que.
Si alguien me pudiera resolver cualquiera de estas dudas estaria muy agradecido, un saludo.
Hay 3 clases de armarios, y una de ellas a su vez se divide en otras 2, pero tienen identicas caracteristicas. En la foto solo muestro la tabla de uno de los modelos de armarios (Model_TC), pero las 4 tablas de modelos tienen los mismos campos. Las tablas amarillas son caracteristicas que comparten todos los armarios, y las verdes son especificas para 1 o varios armarios. La tabla OPC contiene el numero de referencia de los 4 armarios asi como su nombre y una breve descripcion. Aqui muestro el contenido de una de las tablas de caracteristicas.
Todas son mas o menos iguales, hay varias posibilidades para cada caracteristica y solo puedes elegir una de cada. La idea seria conectar la base de datos a una pagina web y que empezaras eligiendo el modelo de armario, y a partir de ahi ir seleccionando las caracteristicas una por una, hecho esto se generaria un documento con el precio y las caracteristicas elegidas. Esta es la tabla OPC con la referencia de cada armario y su nombre, el armario TC se corresponde con la referencia ET.
Esta es la tabla especifica del armario TC, solo tiene un registro que obviamente es ET (texto), todos los demas campos son numericos para relacionarlos con la ID de las tablas de caracteristicas.
Tengo unas cuantas dudas al relacionar las tablas, por ejemplo, dado que el campo Bay (numerico) de la tabla MODEL_TC esta vacio y que quiero acceder al contenido de la tabla BAY_CC_TC a traves de IDBay1 (clave principal autonumerico), deberia forzar la actualizacion en cascada? En cuanto a las propiedades de la relacion, deberia dejarlo en la opcion 1 o cambiar a 2 porque el campo bay de MODEL_TC esta vacio? Mientras escribo tambien se me ocurre que tal vez no seria mejor cambiar la clave principal de las tablas de caracteristicas a las descripciones y asi me ahorraria campos numericos de Id?
Merece la pena mostrarlo todo mediante listboxes con querys (que me ponen pegas porque los campos enlazados son numericos y yo querria mostrar texto) o deberia eliminar las tablas de propiedades y crear listboxes manuales para cada campo en las 4 tablas de modelos de armarios y dejarme de complicaciones (aunque me parece chapucero)?
Como veis tengo un monton de dudas, desde el planteamiento de la base de datos (no se si habre cometido errores de base) hasta la decision de poner demasiadas ids numericas porque luego es un problema para hacer querys si quieres mostrar texto.
Ahora mismo tengo la base mas o menos asi (ref en MODEL_TC no es clave principal) y la idea seria conectar las tablas de los otros modelos a OPC y despues hacer igual que con MODEL_TC y las tablas de caracteristicas, pero algo me chirria y no se por que.
Si alguien me pudiera resolver cualquiera de estas dudas estaria muy agradecido, un saludo.
Valora esta pregunta
0