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

Una o tres tablas?

Estas en el tema de Una o tres tablas? en el foro de Bases de Datos General en Foros del Web. Edito: Encontre la solucion a lo que preguntaba, aqui: http://dev.mysql.com/tech-resources/articles/hierarchical-data.html Saludos ------------------------------------------------------------------------------------- Holas, buen dia. Hace un tiempo hice una tabla para guardar registros de ...
  #1 (permalink)  
Antiguo 05/05/2011, 08:01
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 1 mes
Puntos: 24
Una o tres tablas?

Edito:
Encontre la solucion a lo que preguntaba, aqui:
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

Saludos
-------------------------------------------------------------------------------------

Holas, buen dia.

Hace un tiempo hice una tabla para guardar registros de paises, provincias y partidos. En la misma tabla guardaba todos los datos, es decir podia haber un registro de:
id=1
pais=argentina
provincia=buenos aires
partido=la plata

Si hubiera otro registro que sea un partido de buenos aires ahi estaba repitiendo el dato de pais y provincia, y para eliminar la redundancia(normalizar) se me ocurrieron dos formas:
1 _Las mas "comun" a mi parecer seria hacer una tabla para cada segmento(pais, provincia, partido), en donde el objeto a referenciar siempre se le va a agregar un id de partido, los datos de provincia y pais se buscaran por ascendencia(por ej: en la tabla partido hay un id de provincia, y en la tabla provincia un id del pais)

2_Una tabla de cuatro columnas que serian: id, nombre, tipo(pais, provincia o partido) y un id del padre(referenciando un id en la misma tabla). Por ej:
id=1
nombre=argentina
tipo=pais
id_padre=null (null por no tener padres, es el primer nivel)
otro registro:
id=2
nombre=buenos aires
tipo=provincia
id_padre=1 (esta apuntando al registro pais argentina)

De estas dos maneras de armar las tablas, me interesa mas la segunda. Manejar los datos me parece mas sencillo, incluso, si quisiera hacer un nivel mas bajo (como podria ser localidad) solo tengo que agregar un nuevo tipo(utilizo ENUM para esta columna) y ya lo podria empezar a usar siempre referenciando a un padre partido.

El insertar datos me parece sencillo(siempre verificando que la ascendencia se cumpla bien), el traerlos tambien(si queiro solo un tipo se arregla con un WHERE) pero tengo algunas dudas, nunca hice una tabla asi.

Ustedes como creen que es la mejor manera guardar y manejar este tipo de datos?

Gracias

Última edición por RatoN7; 05/05/2011 a las 16:06 Razón: Encontre la solucion

Etiquetas: tablas, tres, bases-de-datos
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 22:12.