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

Optimisations SGBD Discussion :

Choix entre une ou plusieurs tables


Sujet :

Optimisations SGBD

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut Choix entre une ou plusieurs tables
    Bonjour,
    je suis devant un choix cornélien.
    Je dois stoker dans ma BD (Postgresq) des données qui ont toute la même structure.
    Par exemple, l'ai une commune (id,libelle) qui est composée de plusieurs zones (id,libellé) composées de plusieurs parcelles (id,libelle).
    Sur cette structure, je vais donc créer 3 tables qui auront la même structure (id,libelle,id_parent) (d'où une certaine redondance).

    Ma question est donc de savoir s'il vaut mieux créer 3 tables ou alors une table avec un discriminant permettant de différencier le type?

    Merci pour vos remarques...

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Bienvenue sur le forum

    3 tables seront beaucoup mieux qu'une seule !

    Prenons votre schéma à l'envers :
    Parcelle -1,1----Situer----0,n- Zone -1,1----Situer----0,n- Commune

    Ce schéma donne naturellement 3 tables.
    Si vous n'en créez qu'une seule avec la structure que vous donnez (id, nom, id_parent) :
    - Comment saurez vous distinguer les parcelles des zones, lesquelles ont toutes deux des id_parent non nuls ?
    - Les requêtes pour trouver toutes les parcelles d'une commune vont être beaucoup plus compliquées et longues à s'exécuter que celles avec les 3 tables en jointure.
    - Sur le plan sémantique, id_parent ne représente pas la même chose selon que l'on est en présence d'une parcelle ou d'une zone et n'a aucune signification pour les communes, sauf si vous étendez votre schéma de commune vers canton puis département puis région.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut
    Effectivement,
    je pensais en plus rajouter un identifiant permettant de distinguer mes entités (1=parcelle,2=zone,3=comme).
    Mais pour ce qui est des requêtes, c'est vrai que çà risque d'être plus compliqué.
    Je pense donc que je vais partir sur 3 tables distinctes.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [nhibernate] mapper une classe à plusieurs tables
    Par maa dans le forum NHibernate
    Réponses: 6
    Dernier message: 02/07/2007, 18h06
  2. [WD9] Choix d'une cellule de table
    Par elgigante dans le forum WinDev
    Réponses: 5
    Dernier message: 21/06/2007, 16h27
  3. Choix entre une table temporaire et une table #Temp
    Par cfeltz dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/05/2007, 14h59
  4. [Conception] Une ou plusieurs tables
    Par spawns dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/08/2006, 11h23
  5. [débutant] 1 ordre select sur une OU plusieurs tables
    Par goony dans le forum Langage SQL
    Réponses: 10
    Dernier message: 18/08/2005, 10h57

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