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

Access Discussion :

(Performance) Deux tables ou une seule?


Sujet :

Access

  1. #21
    Membre du Club
    Inscrit en
    mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : mars 2006
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Motrin, enlève ta peau de soc’ de devant les yeux. Personne n’a parlé d’un lien direct entre la POO et de la normalisation d’une BD. C’est moi qui t’ai demandé si tu avais fait de la POO parce que t’avais l’air fâché avec le fait de regrouper deux entités dans une entité plus globale qui reprenait leurs propriétés communes.
    Le lien avec la POO ?
    Eh bien en général en poo, on est habitué à avoir des classes (par exemple ‘véhicule’) et des sous classe (par exemple ‘moto’, ou ‘voiture’). Et les propriétés et/ou fonction membres communes sont placées dans la classe mère (‘véhicule’) et les propriétés et/ou fonction membres spécifiques sont placées dans les classes qui héritent de ‘véhicule’.

    Et en général on aime bien hiérarchiser les objets en classes et sous classes ! Tu sais, ça peut être pratique, non ? Pour mettre à jour facilement son programme, pour gagner en clarté, pour que le code soit facilement réutilisable par quelqu’un d’autre, etc…

    Citation Envoyé par motrin
    Je fais du java, c++, vb, vb.net, vb6, windev, webdev, Access, PL/SQL, c++.net, ASP.NET,PHP.
    On ne te demande pas de réciter ton CV ! Je te demandais juste si tu avais fait de la poo…
    Le php est un langage objet ?
    VB ? Certes ça s’en rapproche avec les modules de classe mais je pense même pas que tu t’en serves.

    Je ne sais même pas pourquoi je prends la peine de t’expliquer ton ça, puisque toi, ton seul plaisir, c’est de réfuter les idées des gens, où alors critiquer ce qu’ils mettent sur leurs posts…

    Alors je pense le dire au nom de tous : motrin, s’il te plait…

    CHUT


  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 86
    Points : 85
    Points
    85
    Par défaut
    sans vouloir envenimer le sujet :
    Oui, avec PHP on peut très bien faire de la programmation orienté objet
    Guilty for being the best

    Il y a des choses qui semblent naturelles... Jusqu'au jour où on ne les a plus...

  3. #23
    Membre du Club
    Inscrit en
    mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : mars 2006
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Certes, je ne suis pas un expert en PHP, je ne connais que les rudiments. Quoi qu'il en soit, demande à motrin s'il fait de l'objet avec son php !

  4. #24
    Membre régulier
    Inscrit en
    novembre 2004
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 133
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par pellec
    Salut !

    A propos des performances :
    - Le gain en performance se fait souvent au détriment de la normalisation. En gros on va essayer de regrouper les données dans une même tables de manière à minimiser le nombre de jointures à faire lors des requêtes.
    Qu'est-ce que tu attends pour mettre tous tes données dans une table? Pas besoin de jointure, tu auras de meilleures performance mon grand.

    Citation Envoyé par pellec
    Personne n’a parlé d’un
    lien direct entre la POO et de la normalisation d’une BD
    c'est rassurant de l'entendre de toi

    Pourquoi ne pas faire deux tables (moto, et auto) individuelle qui n'auront aucune relation entre elle, plutôt de faire trois tables, 1 communes et une propre au moto et l'autre au auto?

  5. #25
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 501
    Points : 32 242
    Points
    32 242
    Par défaut
    STOP !

    Merci de vous concentrer sur la question.

    La question était ici une ou deux tables ?

    Etant donnée le nombre d'équivalence entre les rencontres et les réunions, il n'y a pas de doute : une seule table :

    IdEvenement,Description, les autres champs, estRéunion

    Estréunion est un champ de type Oui/Non qui s'il est vrai signifie que l'évnement est une réunion, sinon une rencontre. Il est évident que certains champs ne seront pas obligatoirement remplis selon le type de l'évenement.

    Quant à l'utilisation d'une troisième table, même si elle correspond à la norme merise, elle est totalement déconseillées puisque en terme de performance, on va recréer des champs, utiliser une jointure pour rien du tout !

    Si en terme de modele conceptuel il est essentiel d'avoir 2 entité sous jacentes d'une première il n'en est pas de même au niveau relationnel où tout analyste programmeur doit savoir faire abstraction de la normalisation pour se rapprocher des possibilités offertes par le SGBD(R) utilisé. Cette abstraction n'étant pas arbitraire, les règles de passages de MCD à MRD sont clairement définies au niveau de MERISE.

    Merci donc de vous concentrer sur le sujet, php, java poo, n'ont rien à faire ici !

  6. #26
    Membre régulier
    Inscrit en
    novembre 2004
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 133
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Tofalu
    STOP !

    Merci de vous concentrer sur la question.

    La question était ici une ou deux tables ?

    Etant donnée le nombre d'équivalence entre les rencontres et les réunions, il n'y a pas de doute : une seule table :
    Pourquoi ne pas faire 2 tables individuelles (Rencontre et réunion) qui n'a aucun join entre elle? Au niveau performance, les requêtes seront fait sur une seule table et tu n'auras pas besoin de mettre un where pour vérifier si c'est une rencontre ou une réunion, tu l'auras automatiquement avec le nom de la table. C'est plus facile pour quelqu'un d'autres de comprendre la bd par exemple si celui-ci fait des modifications dans la bd au cours du cycle du logiciel ou même peut-être du débogage.

  7. #27
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 501
    Points : 32 242
    Points
    32 242
    Par défaut
    Dans ce cas on va devoir dédoubler aussi les relations, les tables de jointures etc ...

    Imaginons une table participer. avec une seule table évenement, on aura :

    Evenement(idEvenement, etc ...)
    Participant(idparticipant, nom, etc...)
    Participer(idevenement,idparticpant,role)


    Avec deux tables evenements

    Réunion(idreunion,description, etc)
    Rencontre(idrencontre,description,etc)
    Participant(idparticipant, nom, etc)
    ParticiperReunion(idreunion,idparticipant,role)
    ParticiperRencontre(idrencontre,idparticipant,role)

    Et ainsi de suite pour chaque table de jointure ... De plus si demain je veux rajouter un évenement stage, rien de plus simple, il suffira de le rajouter à la liste des type. Si j'utilise ta façon de faire, il me faudra créer une table stage, une table participerStage, etc ...

Discussions similaires

  1. Mapper deux tables sur une seule classe
    Par gorgonite dans le forum Zend_Db
    Réponses: 13
    Dernier message: 30/06/2008, 14h06
  2. Réponses: 1
    Dernier message: 20/02/2008, 12h34
  3. deux tables vers une seule en Talend
    Par widom dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 10/07/2007, 15h37
  4. Deux tables et une seul liste
    Par cap38 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/05/2007, 15h51
  5. effacer un enregitrement de deux tables en une seule requete
    Par mikebranque dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/10/2006, 14h30

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