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

Décisions SGBD Discussion :

plusieurs petite tables ou une seule grande table


Sujet :

Décisions SGBD

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut plusieurs petite tables ou une seule grande table
    bonjour ,

    je dois creer une base de données avec les caractéristiques suivantes

    voiture : num d'imatriculation , année de mise en circulation, kilométrage, tarif , marque, catégorie (coupé , cabriolet , berline ...)

    camion: num d'imatriculation , année de mise en circulation , kilométrage, tarif ,marque , tonnage vide, tonnage max

    comment pourrais je modeliser cela ?

    je vois trois possibilités :
    -avec 2 tables :une table voiture et une table camion
    ou bien
    -avec 3 tables une table véhicule( num d'imatriculation , année de mise en circulation, kilométrage,tarif, marque)
    et une table voiture(num d'imatriculation, catégorie)
    et une table camion (num d'imatriculation, tonnage vide , tonnage max)

    ou bien avec une seule grande avec tous les attributs cités en haut + un qui précise si c'est un camion ou une voiture

    quelle solution est optimale sachant que il faut extraire le maximum d'informations avec toutes les requetes imaginables!
    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 72
    Points
    72
    Par défaut
    ce que tu veux faire c'est de l'heritage en fait.
    voiture et camion sont des vehicules, un vehicule possede une immatriculation.
    Il y a differentes maniere de modeliser cela, j'en connais 3.
    Sois tu fait 2 tables differentes.
    Sois tu fais une table avec tout.
    Ou alors tu fais une table vehicule qui contient les caracteristiques communes de voiture et camion, plus une table pour voiture et une autre pour camion.

    Ca t'aide pas mais y a le choix, c'est comme çà

    Sinon tu devrais regrouper les caracteristiques en fonction des modeles de caisses et de camion.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut finalement??
    quelle solution parait la moins couteuse en espace et temps de requetes?

  4. #4
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Points : 960
    Points
    960
    Par défaut
    Si tu veux pouvoir imaginer le plus de requêtes possible avec un temps d'exécution qui se respecte, tu as encore plus de table que ce que tu indiques.
    1) Numéro d'immatricualtion n'est pas une clé primaire optimale. Choisis plutôt un nombre. (sequence, auto incrément , ...)
    2)
    Table1 TVehicule
    Vehicule_Id Vehicule_Immat, Vehicule_AnneeCirculation, Vehicule_Km, Vehicule_Tarif, TypeVehicule_Id, Marque_Id

    Table2 TTypeVehicule camion, coupé, cabriolet,berline,...
    TypeVehicule_Id, TypeVehicule_Nom

    Table3 TMarque
    Marque_Id, Marque_Nom

    Table4 TTonnage
    Tonnage_Id, Vehicule_Id, Tonnage_Vide, Tonnage_Max

    Tous les cvhamps finissant par Id sont des identifiants (nombre)


    Ce schéma me semble mieux normalisé et optimisé. Cependant, n'étant pas sur du but de la manoeuvre (je pense à une location ou vente de véhicule), le schéma n'est peut-être le mieux.
    La SNCF est mon ami
    blog PARIS-GRANVILLE
    Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 72
    Points
    72
    Par défaut Re: finalement??
    Citation Envoyé par aaronw
    quelle solution parait la moins couteuse en espace et temps de requetes?
    Le moins couteux en temps de developpement des requetes sera surement avec une seule table, mais du fait des redondances sur les caracteristiques des modeles, tu perdras en espace de stockage, et tu vas te retrouver avec des joinutes extrement couteuses.
    Si tu connais pas grand chose aux triggers et ça prendras moins de temps au debut.
    Apres tu pourras toujours decouper.
    Sache que normaliser au maximum n'est pas forcement la meilleur solution.
    Parfois, denormaliser peu faire gagner en perfs, et ce sont souventles perfs qui comptent.

    Mais tu devrais avant tout, avant de te lancer, lire des trucs sur la normalisation et l'heritage.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    en tout cas, il est clair que ca ne sert a rien de faire 3 tables séparées si à chaque requete, tu joins les 3 tables pour obtenir tes résultats: dans ce cas, mieux vaut une table consolidée, qui ressemble le plus possible à ce que tu voudras obtenir comme résultat de requête.

    Comme le dit mirak63, sauf gros problème de place, çà vaut pas forcément le coup de tout normaliser à donf'...
    @+.

  7. #7
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Points : 960
    Points
    960
    Par défaut
    Ca dépend pour quel but.
    Si c'est pour faire quelque chose de solide et d'interrogeable de différente manières. Plusieurs tables sont utiles.
    Si tu comptes juste faire un truc comme ca sans évolution alors tu peux faire table unique.

    On se rend bien compte que pour limiter les types de saisies différentes voir tester des valeurs particulières il est plus simple d'utiliser des tables satellites. D'ailleurs, permet un contrôle de saisie plus efficace.
    Car sinon pour limiter les types de valeurs possibles, il faut utiliser un check sur la colonne et alors la c'est vraiment long (surtout en cas de saisie tel que camion, automobile, cabriolet, ...)
    La SNCF est mon ami
    blog PARIS-GRANVILLE
    Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 839
    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 : 21 839
    Points : 52 932
    Points
    52 932
    Billets dans le blog
    5
    Par défaut
    L'étude sur l'héritage dans la modélisation des données :
    http://sqlpro.developpez.com/cours/m...tion/heritage/

    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/ * * * * *

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut merci à tous
    merci pour vos réponses et vos conseils .

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/06/2007, 08h49
  2. Réponses: 2
    Dernier message: 23/04/2007, 00h10
  3. Plusieurs indicateurs d'une meme table dans une seule requete
    Par arnaud.barre dans le forum Débuter
    Réponses: 5
    Dernier message: 12/04/2007, 17h23
  4. Réponses: 4
    Dernier message: 08/06/2006, 20h06
  5. plusieurs tables dans une seule table
    Par scully2501 dans le forum Access
    Réponses: 1
    Dernier message: 10/10/2005, 09h19

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