none
Consulta Modelado Países en BBDD RRS feed

  • Pregunta

  • Hola, quisiera saber si alguien se encontró con este problema:

    Los distintos países tiene distintos niveles y formas de división política. Por ejemplo en Argentina es País, Provincia, Partido, Localidad, Ciudad. Pero estas divisiones no se cumplen para todos los países (ni en nombre ni en cantidad de niveles de profundidad).

    A alguien se le ocurre como modelar esto en una BBDD?

    viernes, 19 de octubre de 2012 12:05

Respuestas

  • Me gusta mas una relacion parent to child da mas flexibilidad

    Con estos datos de ejemplo:

    Con una query :

    Select a.Geo_Name,c.Geo_Name,b.GeoType_Name 
    from dbo.TB_GEO a
    left join dbo.TB_GEO c on c.Geo_Id=a.Geo_ParentId
    inner join dbo.TB_GEO_TYPE b on a.GeoType_Id=b.GeoType_Id
    order by a.Geo_Name

    y un resultado así

    Geo_Name   Geo_Name   GeoType_Name
    ----------        ----------        ------------
    España         NULL            Pais      
    Lavapiés       Madrid         Barrio    
    Madrid          Madrid         Ciudad    
    Madrid          España        Provincia 

    (4 row(s) affected)


    @fracionero

    • Marcado como respuesta Matias Ariel viernes, 19 de octubre de 2012 14:08
    viernes, 19 de octubre de 2012 13:16

Todas las respuestas

  • Mas o menos así:

    Y con estos datos de ejemplo:

    Y al realizar esta consulta:

    SELECT     Paises.Nombre, DivisionesPoliticas.NombreDivision
    FROM       DivisionesPoliticas INNER JOIN
               Paises ON DivisionesPoliticas.IdPais = Paises.IdPais

    Tendría esta información:

    Argentina País
    Argentina Provincia
    Argentina Partido
    Argentina Localidad
    Argentina Ciudad
    Colombia País
    Colombia Departamento
    Colombia Cuidad
    Colombia Barrio

    De esa forma, puedes agregar tantas divisiones politicas como sea necesario para cada pais !

    Espero te sirva, si necesitas los scripts de creación de tablas y esos datos de ejemplo, me cuentas !


    Un saludo, Cristian Pérez


    viernes, 19 de octubre de 2012 12:50
  • Me gusta mas una relacion parent to child da mas flexibilidad

    Con estos datos de ejemplo:

    Con una query :

    Select a.Geo_Name,c.Geo_Name,b.GeoType_Name 
    from dbo.TB_GEO a
    left join dbo.TB_GEO c on c.Geo_Id=a.Geo_ParentId
    inner join dbo.TB_GEO_TYPE b on a.GeoType_Id=b.GeoType_Id
    order by a.Geo_Name

    y un resultado así

    Geo_Name   Geo_Name   GeoType_Name
    ----------        ----------        ------------
    España         NULL            Pais      
    Lavapiés       Madrid         Barrio    
    Madrid          Madrid         Ciudad    
    Madrid          España        Provincia 

    (4 row(s) affected)


    @fracionero

    • Marcado como respuesta Matias Ariel viernes, 19 de octubre de 2012 14:08
    viernes, 19 de octubre de 2012 13:16
  • Muchas gracias por responder a ambos!

    Saludos

    viernes, 19 de octubre de 2012 14:09