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

Langage PHP Discussion :

Conception d'une classe de table de base de données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 77
    Points
    77
    Par défaut Conception d'une classe de table de base de données
    Bonsoir,

    Je suis entrain de réfléchir à un problème de POO. Je veux créer une classe qui représente une table dans la base de données, et qui peut effectuer un certain nombre de tâches basiques : l'insertion de données, la recherche, la mise à jour et la suppression.

    Les autres classes utiliseront cette classe pour envoyer des requêtes au serveur de base de données (i.e. MySQL). Et si je veux modifier des choses dans ma base de données, il ne me suffit de modifier que ce fichier de table, je n'ai pas besoin de parcourir tous les fichiers pour modifier des requêtes SQL.

    Mais le problème est que les définitions de table sont souvent très différentes, il y a des tables qui ne contient qu'un seul attribut dans leurs clefs primaires. Mais on peut aussi trouver facilement des tables dont la clef primaire est composée de plusieurs attributs. De plus, parfois on a besoin de lire des données depuis plusieurs tables (i.e. FROM table1, table2 WHERE table1.attribut = table2.attribut).

    Je ne sais pas comment gérer ce genre de problème, comment généraliser la gestion de tables à l'aide d'une classe PHP.

    J'aimerais savoir si quelqu'un ait quelques pistes pour résoudre ce genre de problème.

    Merci d'avance !

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par anaranjado Voir le message
    Mais on peut aussi trouver facilement des tables dont la clef primaire est composée de plusieurs attributs.
    pour ça j'ai contourné le problème en mettant à chaque fois une clé primaire simple en plus.
    je sais que ça consomme des ressources en plus et donc le jour ou je devrai optimiser ça dans un de mes projets je pense que je ferai une classe spéciale qui n'utilisera pas ma classe générique

    Citation Envoyé par anaranjado Voir le message
    De plus, parfois on a besoin de lire des données depuis plusieurs tables (i.e. FROM table1, table2 WHERE table1.attribut = table2.attribut).
    il vaut mieux éviter de mettre plusieurs tables dans le FROM, les SGBDR ont du mal à optimiser les requêtes.
    à la place il vaut mieux utiliser JOIN pour les jointures et dans ce cas tu pourras plus facilement générer les requêtes dans ta classe générique
    GNAP !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 77
    Points
    77
    Par défaut
    Merci pour votre réponse nosferapti

    il vaut mieux éviter de mettre plusieurs tables dans le FROM, les SGBDR ont du mal à optimiser les requêtes.
    à la place il vaut mieux utiliser JOIN pour les jointures et dans ce cas tu pourras plus facilement générer les requêtes dans ta classe générique
    Je ne savais pas ça. Merci ! Je vais essayer à utiliser JOIN dans mon prochain projet.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 16h02
  2. connecter une classe java avec la base de données
    Par othaymine dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 12/03/2011, 20h20
  3. Question de conception objet, une classe par table RDB
    Par callapa dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 14/01/2011, 10h55
  4. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46
  5. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28

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