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

Ordenamiento de una tabla

Estas en el tema de Ordenamiento de una tabla en el foro de Mysql en Foros del Web. Hola, tengo una página dinámica que recoge los campos de una base de datos en Mysql y los imprime. La cuestión es que necesito que ...
  #1 (permalink)  
Antiguo 23/12/2010, 06:49
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Ordenamiento de una tabla

Hola, tengo una página dinámica que recoge los campos de una base de datos en Mysql y los imprime. La cuestión es que necesito que estos "archivos" se imprimam segun un orden siempre donde los 3 primeros de cada campo han de imprimirse al llamar a esa categoría ya que tienen asignados en css un formato diferente.

En términos esquemáticos, yo tengo una base de datos con una tabla llamada "animales".

Un campo es id, otro aves, otro, reptiles, otro mamíferos, etc..

Así hasta 64 campos y claro me da que es mucho.

Así que la cuestión es: ¿da lo mismo en que sentido se extienda la tabla de la base de datos, o sea si llega a ser muy ancha eso es malo?

Se me ocurrió que podría hacerlo "en vertical" es decir un campo id, otro categorias y otro animales. Es mil veces más lógico lo recnozco. Pero es que necesito tener carantías de que los primeros 3 dentro de cada "especie" van a seguir estando ordenados tal y como los he puesto con phpmyadmin y no van a variar.

¿El order by id Desc qué es lo que me garantiza exactamente?
  #2 (permalink)  
Antiguo 23/12/2010, 07:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ordenamiento de una tabla

Por lo pronto, estás confundiendo la visualización de los datos con su almacenamiento. El hecho de que una tabla como la que describes se represente de esa forma no significa que esa sea la forma de almacenar los datos.
Si tienes una tabla que llamas "Animal", y esa tabla debe abarcar diferentes tipos de animales (gatos, leones, perros, serpientes, etc), ese dato es un atributo del animal, pero no implica que el animal en sí vaya en una columna. Eso es un error de diseño.
Además, respondiendo tu duda, las tablas no pueden tener infinitos campos, y eso es lo que ocurriría si pusieras una columna por cada especie y tipo de animales: Eventualmente superarías el máximo de columnas posibles.
Por otro lado, no queda claro qué es lo que almacenas en la tabla, ya que cada registro se correspondería con algo respecto a esos animales, pero desde ya el resultado será caótico si pretendes tener la tabla así y ordenarla de algún modo.
Me explico: ORDER BY ordena registros en base a una secuencia de columnas, así, si ordenases la primera columna (aves), esta se ordenaría bien, pero si los reptiles están en otro orden, quedarían desordenados, y así sucesivamente. Para que el orden fuese perfecto en forma descendente, por defecto cada registro, ordenado desde la primera columna, debería estar perfectamente ordenado respecto de los otros campos.

A mi entender, todo el diseño que plantas de la tabla no está ni normalizado, ni responde a un modelo de bases de datos relacional. Tendríamos que empezar desde el principio.
¿Qué es exactamente lo que quieres almacenar, y qué datos componen esa información? SI lo aclaras podemos llegar a un diseño optimo para tus necesidades y que realmente sea funcional como diseño 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 23/12/2010, 07:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Ordenamiento de una tabla

Cita:
Así que la cuestión es: ¿da lo mismo en que sentido se extienda la tabla de la base de datos, o sea si llega a ser muy ancha eso es malo?

Se me ocurrió que podría hacerlo "en vertical" es decir un campo id, otro categorias y otro animales. Es mil veces más lógico lo recnozco. Pero es que necesito tener carantías de que los primeros 3 dentro de cada "especie" van a seguir estando ordenados tal y como los he puesto con phpmyadmin y no van a variar.
claro que es malo.

Una base de datos relacional nunca debe crecer en columnas. separalos por categorias.

Si lo que te preocupa es el orden, después te ayudamos con eso. Con un ejemplo mas estructurado.

esa es la mejor forma.

saludos Gambinoh
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 23/12/2010, 09:02
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: Ordenamiento de una tabla

A ver el modelo lo tengo tal que así. Si la tabla se llama "animales":


id Familia Genero Especie (tres campos)

El id como guía numérica se autoincrementa. Los campos son de texto.

Como es lógico cada especie tiene un género y una familia.

Y bueno la cuestión clave es que dentro de las especie de cada género...

Hayan tres en concreto que sean impresas las primeras al hacer el query con php. El query simplemente imprime la totalidad de las especies que pertenecen a un determinado género.

Etiquetas: ordenamiento, tablas
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 17:11.