Je travaille actuellement sur un projet C#/ASP.NET qui hébergera plusieurs sites web de commerce électronique, tous fonctionnant dans la même application. J'utilise LinqToSql (passer bientôt à PLINQO) pour accéder à ma base de données. La base de données contient à la fois des informations sur la structure du site (pages, ...) et les données produits/commandes/utilisateurs.Projet CMS/E-commerce asp.net: une base de données ou plusieurs bases de données?
Ma question est la suivante: dois-je utiliser une seule base de données pour tous les sites Web ou créer une nouvelle base de données (le même modèle) pour chaque nouveau site Web? J'utilise maintenant une base de données unique (avec SiteIDs dans certaines tables) mais j'ai un gros souci de sécurité, je ne peux pas simplement sauvegarder/restaurer la base de données pour UN site web si quelque chose se passe mal (par exemple quelqu'un efface tous les produits sur un site Web) et c'est une exigence importante de l'application. Alors, je me demandais quelles sont les bonnes pratiques dans ce cas-là? Y a-t-il de gros inconvénients si vous divisez dbs? (Je devrais apporter des modifications à plusieurs bases de données au lieu d'une en cas de changements structurels, mais je suppose que je peux faire une version db/système de mise à jour). Comment les CRM actuels gèrent-ils cela? Est-ce un problème de performances si un serveur de base de données héberge un grand nombre de DataBases différents? Un outil de sauvegarde/restauration complexe serait mieux? Pour simplifier la réplication d'un site Web, je peux également diviser les données du CMS pur (Pages, Textes, ...) en un seul DB et les données du commerce électronique (produits/catégories/commandes dans un autre). Est-ce que c'est une bonne idée? Il peut être réalisé par certaines fonctions de sélection/insertion, mais il serait plus facile de simplement copier une base de données bien sûr.
PS: désolé pour mon env. anglais;)
Merci de votre réponse, j'ai décidé de scinder ma base de données car c'est la manière la plus pratique d'avoir la sécurité/capacité d'envoyer des données au client. Maintenant, j'ai du mal à concevoir les 2 bases de données (par exemple où dois-je stocker ma liste de pays, et d'autres tables communes) mais c'est une autre question;) – Guillaume86