Cita:¿Por qué no se puede usar en exclusiva DB Browser?
Por supuesto que se puede... si eres el informático. Toda mi vida he programado para otros y el usuario final no sabe ni quiere saber nada de bases de datos. El programa tiene que funcionar por sí mismo y punto. Durante mucho tiempo lo que he hecho ha sido crear la base de datos yo con el IDE de gambas, meterla vacía dentro del ejecutable y copiarla a las carpetas correspondientes durante la primera ejecución del programa por parte del usuario. Eso funciona perfecto... si vas a estar "encima" del programa y del usuario, porque una modificación en la base de datos y te cuesta recompilar, volver a generar los paquetes y enviar una actualización del mismo a los usuarios. El sistema que ahora he puesto es una simplificación de lo que hacía en mis últimos tiempos, en los que el programa creaba la base de datos sqlite por sí mismo, como en el ejemplo de Food Express, pero teniendo la capacidad de hacerlo desde un archivo .sql posterior, lo que ahorraba el tener que recompilar en caso de modificación de la BD, que es, no lo olvidemos, un fichero ajeno a lo que es gambas en sí mismo.
Así pues, puedes tú usar dbBrowser tranquilamente... pero no puedes pedir a tus usuarios que lo hagan. Food Express debe ser capaz de solventar todos los problemas que surjan por sí mismo.
Cita:¿Qué ventajas tiene tu sistema de crear la base de datos a través de un fichero?
Eso está explicado en el video. El ide de gambas no es capaz de grabar las indicaciones de Foreign Key en la creación y modificación de las tablas y SQLite no admite la creación de Foreign Key en las modificaciones de Alter Table ... etc. Por eso un fichero .sql de una base de datos creada por dbBrowser (o cualquier otro programa) o directamente por ti mismo tecleando, es la manera más directa de que tu programa pueda hacer esas tareas.
Por otra parte, salvo los programas específicos, lo normal es que un usuario nunca tenga que modificar por sí mismo la estructura de las tablas... sólo preparar y servir comidas.
Cita:se da al usuario del programa crear una base de datos nueva y borrar la existente. ¿Esto no es algo peligroso?
Sí, claro, pero es necesario. Todo el software del mundo, hasta los móviles, tienen aquello de "Restaurar configuración original" que manda a la mierda todos los cambios realizados. El truco está en proteger esta acción con las debidas salvaguardas. Haciendo una copia antes de crear la nueva , etc.
Cita:Quiero decir, si algún manazas se la carga a tomar por el culo meses y meses de registros.
Eso si el programa no es bueno. Aún no hemos visto más que en el menú el sistema de copias de seguridad, que salva nuestros datos de manera automática según se configure. La manera más simple es establecer una copia automática en el primer arranque del día. También se pueden establecer vía cron cada ciertos minutos, etc. Nunca hay que dejar al usuario la responsabilidad de hacer las copias porque nadie las hace. Nunca he perdido más de un día de trabajo en ningún programa... salvo cuando se llenaba el disco de las copias y los usuarios ignoraban los mensajes y seguían así meses... cosa que me ha pasado una vez.
"¿Pero no habéis estado viendo los avisos durante meses?" "Sí, pero como si le dabas a "Entendido" todo funcionaba bien pues... no queríamos molestarte"
Cita:Desde mi punto de vista, debería de crear la base de datos cuando se instala el programa y que el usuario no tenga acceso a ella ni que pueda crear una nueva.
Exacto. Eso en condiciones de trabajo normales, pero siempre hay motivos para reiniciar la base de datos: Una corrupción por un corte de luz, alguien la ha cagado con el dbBrowser... o simplemente, el negocio tiene un ciclo anual de trabajo (imagina un aula en un colegio) y cada ciclo empieza de 0 (conservando, por supuesto, los datos de años anteriores como copias ).
En realidad es el primer uso "serio", mejor dicho, complejo que hago de sqlite, que hasta ahora sólo he utilizado como un sistema de almacenar configuraciones y datos locales, pero sin usar nunca la integridad referencial. Para eso estaba el servidor de base de datos de la intranet, MySQL.
Me está molando bastante, pero al no ser una base de datos "tradicional" tiene tantas peculiaridades que hace las cosas un poco distintas a como se enseña habitualmente.
Saludos.