2010-03-29 10 views
2

Nous n'avions qu'une seule application Web, mais nous la divisons maintenant en plusieurs. Chacun sera emballé comme un produit distinct (application web). Certains ont des points communs, d'autres non. Il a été codé à l'origine avec php et en utilisant Postgresql 8.4 et CodeIgniter comme cadre.Architecture pour plusieurs applications Web et bases de données

Je suis à la recherche de bonnes suggestions sur la façon dont je devrais configurer plusieurs applications Web. Ils ont tous leurs propres données quelque peu uniques. Certaines données dans les bases de données peuvent être communes à certaines applications, mais pas toutes. Toutes les applications seront sur un serveur et auront une sorte d'API pour manipuler les données. Je veux qu'il soit structuré de sorte qu'un compte d'utilisateur puisse accéder à n'importe quel produit qu'ils achètent. (un peu comme les comptes google)

Je ne sais pas si c'est une bonne idée d'avoir plusieurs bases de données, ou tout simplement d'en avoir un gros. finalement nous utiliserons S3 pour certaines vidéos et autres images.

Vos pensées et suggestions sont très appréciées.


MISE À JOUR:
Merci pour les réponses. Je peux voir la base de données être distribuée sur beaucoup de lecteurs parce que nous ne sommes pas autorisés à supprimer des données pendant 10 ans.

Aussi nous avons beaucoup d'images (j'ai oublié de le mentionner dans la question originale), Rien de tel que Flikr mais un montant décent. Nous avons presque 300gigs maintenant et en raison d'un nouvel accord d'affaires nous regardons autour de 500 nouveaux membres par mois. En ce moment, les images sont stockées dans plusieurs dossiers en fonction de leur groupe. Si le disque dur manque de place où/et comment y accéder? Je suppose que c'est là qu'interviennent les équilibreurs de charge.

Répondre

0

A propos de la base de données, vous pouvez utiliser différents SCHEMA dans PostgreSQL pour séparer les différentes applications. Ensuite, vous pouvez avoir une base de données avec un seul schéma pour une application, mais aussi de nombreux schémas pour de nombreuses applications.

PostgreSQL peut gérer des bases de données très volumineuses, un couple de TB n'est pas du tout un problème.

1

Une seule base de données serait probablement plus propre si seulement parce que vous pouviez réutiliser la même connexion lors d'une requête sur plusieurs applications, et JOIN JOIN sur eux sans aucun accroc. Par exemple, ajouter une liste de produits ou de vidéos pertinents dans la barre latérale d'une entrée de blog, liés ensemble par un système de tags commun. Ou en ajoutant la possibilité de suivre un fil Wave dans Reader ou un fil de discussion, et de facilement référencer les feuilles de calcul & entre eux, pour la comparaison Google.

La taille totale de la base de données ne devrait rien avoir d'affecté, chaque table est un fichier séparé indépendant des autres. Les noms de tables conflictuels/confus peuvent être le problème principal car de nouvelles fonctionnalités sont ajoutées tout au long, mais un petit espace de nom va un long chemin.

+0

L'accès via une base de données unique rationalise également d'autres processus, tels que la mise en cache de requêtes jointes, l'exécution de transactions, les sauvegardes/restaurations, la gestion de tables connexes. –

Questions connexes