Inicio Foros Clientes y programación Salidas duplicadas en mapas de ZMud (como proseder)

Mostrando 3 respuestas a los debates
  • Autor
    Respuestas
    • rawazarr
      Participante
      Número de entradas: 82

      Hola gente,

       

      Escribo por aquí porque tengo un problema y mi consulta va dirigida a la gente que conoce la estructura del mapa de zmud.

       

      La cuestión es que por razones de integridad de la base de datos añadí un índice de sqlite tal que así:

       

      CREATE UNIQUE INDEX "salidas_desde_hasta" ON "salidas" ("desde_id" ASC, "hasta_id" DESC);

       

      El importador no utiliza los ids viejos, sino que se generan insertándose en una tabla de la base de datos como esta

       

      CREATE TABLE "salas_importadas" ("importacion_id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "id_viejo" INTEGER NOT NULL  DEFAULT 0, "id_nuevo" INTEGER NOT NULL  DEFAULT 0, "fecha_import" DATETIME NOT NULL  DEFAULT CURRENT_TIMESTAMP);

       

      En access abrí la db y probé a buscar duplicados y he visto cosas bastante interesantes, como por ejemplo en el campo Name de las salidas aparentementemente hay anotados comandos, pero la combinación FromId-ToId tiene muchas salidas duplicadas.

       

      Esto hace que al copiar los datos, cuando llego a esas salidas duplicadas tengo errores en el índice. La solución más barata sería directamente quitar el índice y dejarlas pero tengo otro problema y es que por cada una de esas salidas duplicadas el mapper añade una entrada a la tabla de salidas.

       

      Otra solución bastante buena sería, directamente, obviar el campo Name y descartar las salidas que no tengan un DirectionType, con lo que me quedaría solamente con las salidas estándar en todo el mapa… dentro, fuera, gruta… todo eso no aparecería. En ese caso, tendría que poner a punto el editor del mapa para que la gente pueda editarlas.

       

      Mi tabla de salidas es esta:

       

      CREATE TABLE "salidas" ("salida_id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "desde_id" INTEGER NOT NULL  DEFAULT 0, "hasta_id" INTEGER NOT NULL  DEFAULT 0, "nombre" TEXT NOT NULL , "comando_antes" TEXT, "comando_despues" TEXT);

       

      ¿Alguna idea brillante?

       

      PD: Sí, ya importa desde la db de access directamente.

      Tengo muchas ideas en la cabeza, tantas que no puedo si quiera expresarlas.

    • Satyr
      Superadministrador
      Número de entradas: 9026

      No me queda muy claro el motivo por el que has creado ese índice en la taba, a ver si puedes explicárnoslo mejor.

    • rawazarr
      Participante
      Número de entradas: 82

      Hola,

       

      Ese índice fue tanto por intentar mantener coherencia en la base de datos como para no perder las buenas prácticas.

       

      Saludos,

      Tengo muchas ideas en la cabeza, tantas que no puedo si quiera expresarlas.

    • Satyr
      Superadministrador
      Número de entradas: 9026

      Hola, Rawazarr.

      El tema es que es una base de datos de una aplicación de terceros. Las buenas prácticas las tendría que mantener el programador, no tú, ya que al modificar la estructura relacional de dicha herramienta es posible que causes errores del lado de la aplicación.

      Personalmente, yo no modificaría la base de datos para evitar el mal funcionamiento de la herramienta.

       

Mostrando 3 respuestas a los debates
  • Debes estar registrado para responder a este debate.