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

Symfony PHP Discussion :

Utiliser une BDD existante (non relationnelle)


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser une BDD existante (non relationnelle)
    Bonsoir

    Comme le titre l'indique, je voudrais savoir s'il est possible d'utiliser une base de donnée existante, et non relationnelle, dans un projet symfony.

    La société pour la quelle je bosse possède une BDD assez importante (mal optimisée certes), et une migration complète prendrait trop de temps.
    Nous avons pas mal de points à revoir (dont tout le système intranet), et je pense à orienter mon chef de projet sur Symfony.

    Seulement, étant donné que la BDD n'est pas relationnelle "par nature" (en fait mes prédécesseur ont plus ou moins triché pour que, indirectement, elle le soit), l'utiliser avec symfony est-il possible ?
    De même, peut-on ensuite signaler manuellement les relations entre les tables ?


    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le terme "relationnelle" fait référence à la façon dont son organisées les données et non aux mécaniques du moteur de base de données.
    La définition des relations sert à établir les contraintes garantissant l'intégrité référentielle, mais elle ce n'est pas obligatoire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Bonjour,
    Peux-tu nous indiquer le nom de cette base de données si elle est grand public ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Le terme "relationnelle" fait référence à la façon dont son organisées les données et non aux mécaniques du moteur de base de données.
    La définition des relations sert à établir les contraintes garantissant l'intégrité référentielle, mais elle ce n'est pas obligatoire.
    Mais Doctrine a bien besoin que la base ait une certaine organisation non ?
    Au niveau du nom des champs par exemple.

    Je dis ça car par exemple, sous CakePHP, la base doit répondre à certains critères pour pouvoir être utilisées (noms des champs et des tables) rapidement. Sinon ça amène à configurer le projet en détail, ce qui prend pas mal de temps.

    Je vais aller fouiller dans la doc.


    Citation Envoyé par sacricri
    Bonjour,
    Peux-tu nous indiquer le nom de cette base de données si elle est grand public ?
    Désolé, mais la base est proprio

  5. #5
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Citation Envoyé par Furanku Voir le message
    Désolé, mais la base est proprio
    Je m'en doutais :p

    Je pense que ça va être assez compliqué de l'adapter. Il va falloir que tu te passes de Doctrine j'imagine si c'est propriétaire. Doctrine (ou Propel) supporte un certain nombre de SGBD connues.
    Sinon, si tu es courageux, tu peux adapter le support de ta base pour Doctrine (ou Propel) mais c'est chaud (enfin, ça dépend du type de BDD).
    Après, sinon, tu peux faire le support pour PDO mais encore une fois, c'est lourd.
    Ou sinon, tu le fais à la main et là c'est vraiment relou.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je crois que j'ai mal compris ta question en fait.
    Tu voulais savoir sous quel SGBD la base tourne ? Si oui, tout est sous MySQL.

    J'en profite pour expliciter un peu plus la complexité de la chose.
    Je travaille pour un Tour Operator (en contrat pro d'un an), dont je ne préfère pas citer le nom.
    Nous possédons actuellement une dizaine de sites marchands et un système intranet pour gérer le tout.

    En gros, nous avons réellement deux sites : un qui vend des produits (voyage), et un autre des packages (voyage tout compris en quelque sorte).
    Les autres sont principalement des sites à thème ou des sites affiliés qui affichent le même contenu (avec un système de filtre).

    En parallèle, l'intranet permet à la production de faire les saisies, d'envoyer les newsletters, de gérer les réservations...

    Toutes les informations sont sauvegardées dans une seule base MySQL (perso, j'en aurais créé deux...).


    Le soucis vient surtout du fait que rien n'a été pensé dès le début, et que tout a été au fur et à mesure, "from the scratch " !

    On se retrouve donc, au jour d'aujourd'hui, avec une multitude de tables, des données redondantes, un serveur qui peine sous le nombre de requêtes... Et nous qui devons reprendre un code infâme.


    Je suis d'accord, le top serait de pouvoir repartir de zéro. Seulement on ne peut pas se le permettre (j'ai beau essayer de faire comprendre qu'on serait gagnant à la fin, mon reste CDP soumis à des contraintes).

    L'idée serait, dans un premier temps, de recoder l'intranet qui est en train de flancher (et qui est loin d'être ergonomique, baissant fortement la capacité de production du personnel).

    Pour cela, je pense donc à proposer Symfony pour le gain de temps en développement et pour sa robustesse.
    Mais il faut que l'on puisse, en contrepartie, utiliser la base MySQL existante...
    Même si je pense concevoir en parallèle une BDD vierge sur laquelle les nouvelles données seraient enregistrées en attendant la refonte totale des sites (et qui prendrait donc le relais plus tard).


    Concernant la conception de la base, c'est tout simplement... horrible (faute au manque d'analyse de nos prédécesseurs).
    Nous n'avons même pas de traces écrites. Nada. Rien...

    Elle est donc loin de respecter la convention de nommage de Doctrine. Et c'est de là que découle ma question : peut-on utiliser Symfony (et Doctrine) avec notre base existante ?


    Merci

  7. #7
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    HA !

    C'est tout de suite mieux :p

    En fait, as-tu essayé d'utiliser cette task : symfony doctrine:build-schema ? (en ayant au préalable configurée la connexion à ta BDD)

Discussions similaires

  1. Utilisation d'une BDD ou non dans mon projet
    Par Nandou56 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/02/2010, 11h18
  2. Réponses: 1
    Dernier message: 09/09/2006, 21h52
  3. Réponses: 20
    Dernier message: 27/07/2006, 20h04
  4. Réponses: 3
    Dernier message: 04/05/2006, 14h59
  5. Comment utiliser une BDD GDB sans installer interbase ?
    Par QAYS dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2006, 15h31

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