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

Cual es la manera mas eficiente de crear la siguiente tabla...

Estas en el tema de Cual es la manera mas eficiente de crear la siguiente tabla... en el foro de Bases de Datos General en Foros del Web. (BD - Mysql, Lenguajes - php y javascript) Hola buen día. Gracias de antemano por tomarse la molestia de leer este mensaje. Bueno al punto: ...
  #1 (permalink)  
Antiguo 13/06/2015, 02:45
Avatar de drmr2093  
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta Cual es la manera mas eficiente de crear la siguiente tabla...

(BD - Mysql, Lenguajes - php y javascript)
Hola buen día.
Gracias de antemano por tomarse la molestia de leer este mensaje.
Bueno al punto: Cual es la manera mas eficiente de crear la siguiente tabla, la bd posee una tabla llamada 'fichas', esta contiene ya sus 1000 registros. Bueno el usuario podrá crear de esas 1000 fichas montones y estas se guardaran en la bd. a que me refiero el va a seleccionar como crear su montón juntando 30 fichas principales y 10 de repuesto estas son obviamente algunas de las 1000 fichas registradas. Cada usuario puede tener mas de un montón de fichas y cada uno lleva un nombre diferente.

Bueno esa es la teoría, pero el problema es que no estoy muy seguro de como registrar aquello en la bd, pienso en dos maneras:

1) Crear una tabla llamada 'Montones' en esta tendrá los campos Usuario, nombre del montón, ficha1, ficha2, ficha3, (...) , ficha29, ficha30, ficha_respuesto1, ficha_respuesto2, (...), ficha_respuesto9, ficha_respuesto10.
Esto parece que cumple con las reglas normales si no me equivoco pero son 42 campos O.O y se vuelve tedioso trabajarlos.

2) la otra opción que se me ocurrió es crear igual una tabla llamada 'Montones' con los campo Usuario, nombre del montón, monton_principal, monton_repuesto
siendo los campos de monton_principal y monton_repuestos dos strings con las claves de la fichas de cada montón algo asi '1,2,3,4,75,94...' para después ya separarlos al cargarlos con php como puede ser obvio al momento de registrar php aria las validaciones correspondientes. Esto parece mas simple, pero no cumple con las reglas normales, según entiendo y no se que tantos problemas me pueda generar esto.


¿Que opción es mejor o es que acaso existirá algo mas eficiente?, espero y alguien pueda ayudarme con este pequeño problema, nuevamente gracias y hasta pronto.


--- No puedo darte nada a cambio mas que un simple Gracias, pero nunca sabrás lo mucho que mas has ayudado. ---
  #2 (permalink)  
Antiguo 13/06/2015, 05:26
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: Cual es la manera mas eficiente de crear la siguiente tabla...

Ninguna de las dos. Lo que planteas. Esta mal.
Se requiere al menos dos tablas, la primera para el encabezado del montón, y la segunda para el detalle, donde haya un relación!1:N tal en la segunda se pone un registro por cada ficha, vinculada al montón.

A mi entender, no has leído absolutamente nada del modelo relacional. ¿Me equivoco?
__________________
¿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 13/06/2015, 13:25
Avatar de drmr2093  
Fecha de Ingreso: mayo-2015
Mensajes: 5
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Cual es la manera mas eficiente de crear la siguiente tabla...

Bueno tal vez no me explique bien veamos...

en la primera opción teníamos un modelo entidad relación de la siguiente manera:(Super simplificado y sin nada, solo para dar una idea XD)

Teniendo como campo clave el nombre y el id del usuario, permitiendo que el usuario A, como el usuario B, tengan el mismo nombre de montón pero el mismo usuario no tenga dos veces el mismo nombre, aquí se aprecia de igual manera la relación entre el monte y las fichas, teniendo 52 columnas para rellenar.

después tenemos la segunda opción:


Aquí si se rompe la relación entre las fichas y los montones, lo cual según se ve es incorrecto pero esto nos da la ventaja de solo manejar 4 columnas, 48 columnas menos, los campo llave son los mismos que en lo anterior.

y por ultimo tenemos tu opción planteada:


como nombre ni usuario son campos únicos, creamos el campo de id, para generar la relación con la tabla de descripción, teniendo así una tabla de 3 columnas y otra de 51 columnas, esta se puede simplificar a la opción 1 ahorrando así mucho trabajo al servidor.

Gracias por contestar

Etiquetas: bd, eficiente, manera, mysql, registros, siguiente, tabla
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 20:28.