2010-06-17 8 views
3

Combien de bases de données sont nécessaires pour un site Web social? J'ai mon équipe technique qui travaille sur le développement d'un site social mais toutes leurs tables sont dans une base de données. Je voulais créer des ensembles de tables séparés pour les données utilisateur, les tables temporaires, etc. et penser à avoir une seule base de données séparée pour les données critiques, etc mais je ne suis pas une personne de technologie et maintenant comment cela fonctionne? Le site va être un site de critiques locales.Tables de base de données - combien de bases de données?

+0

Je ne suis pas spécialiste de la DB, donc je ne laisserai pas de réponse mais ... Peu importe si vous mettez 100 tables dans une base de données contre 1 table dans 100 bases de données. La seule bonne raison que je peux penser à avoir plusieurs bases de données est de séparer les données qui doivent être plus sécurisées (listes de mots de passe) des données qui ne le sont pas. Ex. Si quelqu'un gère une injection SQL réussie à partir de votre téléchargeur multimédia et tronque toutes les tables, il ne touchera pas à la liste des entrées de mot de passe. –

+6

Si, de votre propre aveu, vous n'étiez «pas une personne technique et maintenant [sic] sûrs de la façon dont cela fonctionne», quelle différence cela fait-il du nombre de bases de données utilisées? – Ken

+0

Plusieurs bases de données sur la même instance sont sans objet si un pirate obtient des informations d'identification de compte avec suffisamment de poids. Sécurisez les privilèges sur les comptes utilisés pour accéder à la base de données. –

Répondre

0

Quelle est la raison pour laquelle vous le souhaitez dans différentes bases de données?

Vous pouvez simplement mettre toutes les tables dans une base de données sans problème, même avec, par exemple, plusieurs installations d'un paquet open source. Dans ce cas, vous pouvez utiliser les préfixes de table.

2
+0

Mise en garde: Mark répond comme ceci en étant wiki communautaire. Ceux qui n'ont pas d'humour peuvent vous renvoyer à la baisse, votre représentant n'étant pas affecté par les réponses du wiki de la communauté (en haut ou en bas). Sinon, utilisez un commentaire. –

2

La réponse est simple, comme toujours, est aussi peu que possible.

Le peu plus réponse compliquée est qu'une fois que votre commencer à repousser les limites de votre serveur et de commencer à penser à plusieurs serveurs avec réplication maître/esclave, votre voudrez peut-être votre écrire fréquentes tables séparées de votre rarement écrire tables qui réduiront les exigences de mise à jour maître-esclave.

0

À moins que vous ne développiez un site Web vraiment BIG, une base de données est la façon de procéder (en passant, avez-vous considéré les problèmes possibles qui peuvent survenir lorsque vous travaillez avec différentes bases de données?).

Si vous êtes préoccupé par les performances, vous pouvez toujours configurer différents espaces de table sur plusieurs périphériques de stockage afin d'améliorer les délais.

Si vous êtes inquiet au sujet de la sécurité, juste augmenter (de meilleurs mots de passe, pas la connexion de root, pas la redirection de port, éviter tunnel, etc.)

0

Je ne suis pas une personne tech fait que l'analyse fonctionnelle mais je posséder le projet, donc je dois superviser l'équipe technique. Ma raison d'avoir plusieurs bases de données est la sécurité et la performance. Comme il s'agit d'un nouveau démarrage, il n'y a pas d'argent pour investir dans une sécurité renforcée ou pour que la base de données soit conçue de manière irréprochable. 1) Je souhaite séparer les données critiques telles que le mot de passe de l'utilisateur/les informations de base du profil, puis séparer les supports utilisateur (photos qu'ils chargent sur leur profil), puis le contenu de l'utilisateur. Ensuite, séparez le contenu du système. La conception actuelle consiste à avoir des couches de tables: des tables principales pour l'ensemble du système et des tables de modules pour chaque module individuel. 2) Performance: De nombreux modules sont en cours de conception. Il s'agit d'un site social à forte consommation de données, avec beaucoup de fonctionnalités intégrées de reporting/analyse, donc beaucoup de lecture/écriture. Peut-être préférable de distribuer la charge à travers la base de données en fonction du but? Comme il n'y a pas beaucoup de financement, je veux bien faire les choses pour la première fois avec mon investissement afin que la base de données puisse fonctionner correctement jusqu'à ce que les revenus soient investis pour faire les choses correctement. Bien sûr, cela pourrait être dans 6 mois et dire un million d'utilisateurs aussi.

Oh & il est prévu d'ajouter le mode de mise en scène/production également si séparé ou même base de données?

+0

Thomas, au lieu de donner une "réponse", vous devriez éditer votre propre question, en ajoutant les informations supplémentaires. –

+1

Si vous ne pouvez pas vous permettre une «sécurité renforcée» ou des sauvegardes, plusieurs bases de données ne vous aideront pas. Lorsqu'un site Web social perd toutes les données d'un utilisateur à l'exception de son identifiant et de son mot de passe, il ne revient pas. Et s'habituer à se tromper la première fois, parce que les esprits les plus intelligents dans le monde ne peuvent pas prédire la performance des systèmes complexes. Les bonnes nouvelles sont que, à moins que vous obteniez un nouvel utilisateur toutes les 15 secondes, vous n'allez pas frapper les utilisateurs 1M en 6 mois - vous avez beaucoup plus de temps que cela. :-) – Ken

1

Si vous commencez à utiliser des bases de données séparées, vous pouvez également exécuter une stratégie de sauvegarde/restauration avec vous.Si vous avez 5 bases de données et sauvegardez tous les cinq, que se passe-t-il lorsque vous avez besoin de restaurer l'un d'entre eux, avez-vous alors besoin de restaurer tous les cinq? J'aurais opté pour le plus petit nombre de bases de données.

1

La raison pour laquelle vous souhaitez disposer de plusieurs bases de données est la mise à l'échelle de plusieurs machines. Dans le contexte d'une «application sociale» où le grand volume/haute disponibilité est une préoccupation. Si vous anticipez la nécessité d'évoluer vers plusieurs machines pour gérer des volumes élevés, la répartition des tables doit être celle qui doit logiquement rester ensemble. Ainsi, par exemple, vous souhaitez peut-être conserver ensemble des tables liées à un domaine spécifique (peut-être des mises à jour d'état) dans une base de données et d'autres tables liées à un sujet différent (par exemple les bibliothèques d'images utilisateur). une base de données différente.

Il existe des raisons logiques et de performances pour conserver les tables dans des bases de données physiques ou logiques distinctes.

0

Tout ira bien avec l'utilisation d'une base de données pour le moment. Vos développeurs peuvent isoler/séparer les données d'application en utilisant le schéma de base de données. Travailler avec plusieurs bases de données peut rapidement devenir un voyage à travers un monde de douleur et doit être évité à moins que ce soit absolument crucial.

Questions connexes