- Un seul utilisateur ou des écritures rapides: SQlite4. Quelle est le type de bases de données préféré pour un logiciel de gestion commerciale?
Fichier.Data? Fichier.Json? .Sqlite?
- Plusieurs utilisateurs: PostgreSQL
- MySQL/MariaDB, facile, mais ne gère pas les transactions sur les commandes DDL (ie: DROP, ALTER), donc perso, j'évite. De plus (pour l'instant) avec PB il faut passer par un pilote ODBC
Dans tous les cas, toutes les tables dans une seule base pour pouvoir utiliser les outils de cohérences de la base et pour les raisons suivantes:
Cela permet de manipuler toute la base hors programme si besoin (exemple avec un outil graphique) ce qui est fort complexe dans le cas de plusieurs tables.
Sauvegarde facile par fichier ou par dump
SQLite à l'avantage de n'avoir qu'un seul fichier de données quelques soit le nombre de tables, il se comporte donc comme le tablespace d'un gros SGBDR. Il a son propre système de fichier dans le fichier unique et donc vis-à-vis de l'OS n'utilise qu'un seul handle de fichier.
Faire des bases mono-tables n'est pas une bonne idée, car on multiplie les handles de fichiers qui doivent être gérés par le système en plus du programme lui-même. Il est très difficile et lent de gérer correctement plusieurs bases ensembles (ouverture/fermetures/accès concomitants) et si ensuite on passe à plusieurs utilisateurs en réseau, ça devient la cata. Il faut penser qu'un programme n'est jamais terminé, donc simplifier et standardiser au maximum.
Pour l'histoire: Il existe des bases de données spécialisées mono-table. Elles fonctionnent comme une map, mais permettent les transactions et le verrouillage d'enregistrement.
Ca se faisait et se fait encore dans certains cas (ex: annuaires LDAP) avec des systèmes de base de donnée sous forme de lib interne à l'environnement de dev. Ex: Berkeley DB, mais PB ne gère pas
https://fr.wikipedia.org/wiki/Berkeley_DB