IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Cloisonnement SQL pour appli en SAAS


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut Cloisonnement SQL pour appli en SAAS
    Bonjour à tous,

    Dans le cadre du démarrage d'un projet en PHP/MySQL, j'aimerais avoir votre avis et surtout un éclaircissement sur la façon d'utiliser des bases de données.

    Le modèle retenu est nClients ----> nBases donc 1 client par base.
    1 base commune contenant les identifiants des bases clients (sinon je vois pas comment faire autrement).

    Du coup la réflexion se porte sur les futures mises à jour de ces bases.

    Habitué à HFSQL de PCSoft, c'est assez simple, on travaille sur l'analyse et lors des MAJ ca modifie les données.
    Le cas simple: j'ajoute un champ dans mon schéma, à part maintenir à jour un fichier texte des requêtes à faire (Alter table.... ) et à chaque connexion vérifier la version et injecter les infos sql j'ai pas d'autres solutions.
    Mais le risque d'erreur est énorme puisque par habitude je créé une colonne dans une table, vient l'heure du café ou du fameux coup de fil et là vous oubliez que vous avez ajouté cette colonne.... A la mise en prod c'est la cata !!!

    J'ai déjà vu des appli justement qui s'occupait de synchroniser toutes les bases avec une base modèle (celle sur laquelle en développe par exemple), avez vous des infos, remarques ou suggestion pour ca ?

    C'est vrai que la fonction SAAS de PCSoft est assez bien foutu, mais pour ce projet on veut pas de Webdev (beurk).

    Merci de vos retours,
    Bons Dev :-)

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Tout dépend du facteur n.... En effet du nombre de base va dépendre la facilité ou la difficulté de la maintenance et des performances de votre système...
    En effet, en multipliant à outrance le nombre de base vous allez multiplier la maintenance associé, par exemple pour la sauvegarde (qui malheureusement doit être fait à froid dans MySQMerde) mais aussi les ressources système (espace utilisé par connexion, par base, par fichiers ouverts..), la défragmentation, la mise à jour des stats....
    La limite étant d'environ 100 bases sur un serveur costaud.

    Au delà il faudra ventiler sur plusieurs serveurs, ce qui risque de vous revenir fort cher....

    Si vous envisagez une solution professionnelle, il vaut mieux vous tourner vers d'autres SGBDR qui gèrent mieux que MySQmerde ce genre de fonctionnalités.

    En effet, tous les SGBDR, (sauf MySQMerde qui en est resté à la version 2 du SQL datant de 19992 - et encore pas tout...) gèrent es "schémas" SQL qui sont des conteneurs logiques à l'intérieur d'une même base. Ces conteneurs permettent de cloisonner la base, un peu comme si cela était des "sous base". Dans ce cas, une base peut comporter plusieurs millions de sous-bases sans que cela n'affecte en rien, ni la maintenance ni les performances.
    Exemple : MS SQL Server ou vous pouvez aller jusqu'à 4 milliards de schéma SQL dans une seule et même base.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut
    Merci pour la réponse.
    Dans un premier temps, nous compterons 50 bases de 100 tables environ.
    Les bases peuvent être sur un même serveur ou si le client souhaitez monter son propre serveur et héberger sa base pas de souci.

    Du coup, ma question portait surtout sur le fait que quand on fait une modif dans le code (ajout d'un champ dans une table par exemple) est ce que le seul moyen est de se souvenir de ce que l'on a fait ou existe t il une application qui permette de voir les modif faite sur la base de dév et génère donc le code adéquat sur les bases des clients.

    De là à dire Merde ou pas merde, je pense que c'est plus en fonction de la taille, des compétences et des moyens de chacun....

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par nerborac Voir le message
    Du coup, ma question portait surtout sur le fait que quand on fait une modif dans le code (ajout d'un champ dans une table par exemple) est ce que le seul moyen est de se souvenir de ce que l'on a fait ou existe t il une application qui permette de voir les modif faite sur la base de dév et génère donc le code adéquat sur les bases des clients.
    La plupart des SGBDR, sauf MySQmerde, acceptent la création de déclencheurs DDL qui permettent de lancer du code sur des événements DDL comme CREATE, ALTER ou DROP.
    Dans certains SGBDR, ceci peut être traqué au niveau du serveur et automatisé pour le répliquer sur d'autres bases. C'est le cas de SQL Server.
    Principe : on créé un trigger DDL de niveau serveur pour traquer toute activité DDL effectué sur une base "template" puis on applique la commande DDL ainsi récupérée, sur l'ensemble des bases clones.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Quelle techno pour faire une IHM pour appli php sur base sql server
    Par droliprane dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 01/02/2016, 00h40
  2. Réponses: 1
    Dernier message: 07/04/2010, 10h55
  3. Réponses: 2
    Dernier message: 15/03/2007, 16h34
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo