2010-03-31 6 views
1

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;)

Répondre

1

Si vous avez peur d'avoir tous vos sites dans une base de données, vous avez probablement répondu à votre question. Quand j'avais l'habitude de tous les avoir dans une base de données, j'avais l'habitude d'être explicite que cela coûterait pour obtenir la base de données envoyée à eux.

Je voudrais savoir si vos clients voudront un accès régulier aux données brutes dont vous aurez besoin pour séparer les données. Cependant, si non, vous devriez être bien. En ce qui concerne les mises à jour de la base de données, vous devriez avoir des scripts pour effectuer les mises à jour de façon à passer des tests aux systèmes actifs, donc l'exécution sur d'autres systèmes devrait être correcte. Cependant, cela va créer un surcoût.

En bref, pas de bonne ou de mauvaise réponse, si vous pouvez rester ensemble et garder les clients heureux, faites-le d'autre part et chargez les clients le bit supplémentaire.

+0

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

Questions connexes