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

Que es mas eficiente para consultar mysql

Estas en el tema de Que es mas eficiente para consultar mysql en el foro de Mysql en Foros del Web. Buenas, tengo una duda con la creación de tablas y de que manera hacer mas eficiente la consulta (gastar menos recursos), estoy creando un sistema ...
  #1 (permalink)  
Antiguo 26/09/2015, 18:44
 
Fecha de Ingreso: julio-2014
Ubicación: 1
Mensajes: 16
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Que es mas eficiente para consultar mysql

Buenas, tengo una duda con la creación de tablas y de que manera hacer mas eficiente la consulta (gastar menos recursos), estoy creando un sistema de prueba que requiere categorias y subcategorias (3 ramas)

Ejemplo
Código HTML:
-CategoriaPrincipal1
--CategoriaSecundaria
---SubCategoriaDeSecundaria

-CategoriaPrincipal2
--CategoriaSecundaria
---SubCategoriaDeSecundaria
Entonces yo pense en crear tres tablas para cada rama, la segunda tabla relacionada con la primera por el id, la tercera tabla relacionada con la segunda igual por el id.

Estuve revisando en internet y segun la forma mas comun es tener una sola tabla y relacionar todas en la misma, siendo por ejemplo 0 las principales y las secundarias tendran el id de las principales en la relacion.

Código HTML:
id-nombre-relacion
1 -- Cat1----0
2 -- Cat2----0
3 -- Cat3----0
4 -- Cat4----1
5 -- Cat5----2
6 -- Cat6----3
7 -- Cat7----4
Como pueden ver aca segun la explicacion en internet la Cat7 pertenece a Cat4 y a su vez Cat4 a Cat1
Quedando asi

Código HTML:
Cat1
--Cat4
----Cat7
Mi idea es practicamente lo mismo pero creando tabla para cada rama.

Que es mas eficiente?
  #2 (permalink)  
Antiguo 27/09/2015, 04:35
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: Que es mas eficiente para consultar mysql

Hola,
Lo suyo es crear una tabla para todas las tablas independientemente de si las categorías son hijas o padres, algo así:
Id_tabla, nombre, Id_padre

De tal manera que el campo Id_padre sea o NULL (Para las categorías super padre) o con un valor de Id_tabla (Para generar el parentesco entre ellas), logicamente con una relación recursiva entre ellas para evitar inconsistencias.

Esto se hace así porque los motores de las bases de datos se optimizan en base a los índices y siempre teniendo en cuenta que cada fila de tu tabla, cada "especimen", es un elemento que ha de ser tratado del mismo modo. Si tuvieras varias tablas, el peso total de la bbdd sería algo mayor, y no encontrarías mejoría alguna del rendimiento.

En cualquier caso, quizá te sea de ayuda consultar las reglas de Codd para ahondar un poco en esto de la organización de las tablas en las bbdd relacionales

Espero que sea de ayuda!

Un saludo
__________________
diseño web | Clan Rol

Etiquetas: consultar, eficiente, 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 10:25.