web-dev-qa-db-fra.com

Plusieurs bases de données SQLite3 dans une seule application Web viables?

Cette question a été votée inappropriée pour stackoverflow, alors je vais poser la question ici. J'envisage de concevoir un CMS où le contenu est centré sur ce que les utilisateurs soumettent. Construit sur polyglot, php, sqlite3 pour le contenu utilisateur et XML pour les paramètres CMS.

Ma question est la suivante: utiliser une base de données slite3 pour chaque utilisateur d'une application Web serait-il viable? Ou serait-ce trop dur sur les ressources du serveur? À certains égards, il semblerait que ce serait plus facile, surtout sur les grands sites, mais qu’en est-il des commentaires?

1
Xarcell

Ma question est la suivante: utiliser une base de données slite3 pour chaque utilisateur d'une application Web serait-il viable?

C'est "techniquement" possible mais très peu orthodoxe. Utiliser sqlite de cette façon serait bien en dehors de "l’espace de solution" supposé pour lequel il a été conçu.

Donc, viable? Non.

Ou serait-ce trop dur sur les ressources du serveur?

C'est un cas d'utilisation tellement inattendu que je doute qu'il ait jamais été évalué.

À certains égards, il semblerait que ce serait plus facile, surtout sur les grands sites, mais qu’en est-il des commentaires?

La pratique standard serait de concevoir la base de données pour contenir toutes les données des utilisateurs dans une base de données. Chaque table référençant des données spécifiques à un utilisateur aurait une colonne avec une valeur identifiant de manière unique cet utilisateur.

De cette manière, vous pouvez stocker en toute sécurité toutes les données des utilisateurs mélangées dans une seule base de données.

Voici un exemple très basique qui pourrait aider à illustrer le principe.

All the following tables are in 1 single database

TABLE = "users"
FIELDS
 "user ID"
 "user login nickname"
 "user password_hash"
 "user email"
 "user name"


TABLE = "forum threads"
FIELDS
 "thread id"
 "thread title"

TABLE = "forum thread comments"
FIELDS
 "thread id"
 "comment id"
 "comment user id"
 "comment datetime"
 "commnet text"
2
John McNamara