Ayuda con tabla de MySQL

Topic created · 5 Mensajes · 809 Visitas
  • Buenas!! Este es mi problema, a ver si me puede ayudar alguien:

    Quiero introducir en una tabla de MySQL datos sobre unas casas. Cada casa puede estar en 5 ciudades diferentes, y a su vez en un barrio de esa ciudad. Se me han ocurrido tres formas de hacerlo, pero cada una tiene sus inconvenientes:

    • Hacer un enum con las ciudades y otro con TODOS los barrios de TODAS las ciudades (son unos 100 en total). El problema de hacerlo así es que no solo es bastante trabajoso (que es lo de menos) sino que si alguien se equivoca al introducir los datos es posible que una casa esté en un barrio y una ciudad no compatibles (en un barrio A pero a la vez en una ciudad que no tiene barrio A). Lo bueno de esto es que al ser un enum es fácil identificar los nombres de las ciudades y los barrios.
    • Hacer un enum con las ciudades y un campo numérico para los barrios, donde si una ciudad tiene 50 barrios por ejemplo, cada uno tendrá asociado un número. Para evitar que pase lo mismo que de la otra forma se distinguirá el barrio que es no solo por el número asociado sino por la ciudad también. Por poner un ejemplo más gráfico, tenemos la ciudad A con barrios a, b, c, d, e; y una ciudad B con barrios f, g, h, i. Tanto el barrio a como el f tendrían asociado el número 1, y se distinguen entre sí según si su ciudad es la A o la B. Lo malo de este método es que es posible por ejemplo que se almacene el barrio 5 en la ciudad B, y B solo tiene 4 barrios. Además luego sería un follón para realizar búsquedas en una tabla organizada así, y es más difícil introducir los datos sin equivocarse.
    • Hacer que el campo sea un varchar, con todo el peligro que conlleva esto, es muy fácil escribir mal un nombre al introducir los datos y todo al garete...
      Como véis, ninguna parece la opción adecuada, así que os pido ayuda a ver si a alguien se le ocurre algo mejor.

    Un saludo y gracias por adelantado!! :wiii:

  • pues te tendría que preguntar, como quieres introducir los datos en la base de datos ?? supongo que sea por un formulario y tal verdad?? si es por formulario, yo haría los campos de la db varchar, pero en el formulario no dar lugar para que escriban sino que elijan entre las opciones que le des, por ejemplo si elijen al ciudad a luego solo les de a elegir los barrios asociados a esa ciudad, eliminando la posibilidad de errores, esto me parece mucho más factible que andar haciendo malavares con la db

  • Pues he hablado esta tarde con mi profe de informática y creo que su solución es la mejor, hacer una tabla a parte con dos campos, nombre del barrio y ciudad, así se arreglan todos los problemas a golpe de remo _xD_

  • nunca dijiste que podia ser en varias tablas hum!

  • Porque no se me ocurrió xDDD, si se me hubiera ocurrido hacerlo en dos tablas ya no tendría que preguntar u.u

    Bueno, como ya está solucionado, cierro 😛