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

Schéma Discussion :

Pour une table qui contient peu d'enregistrements et qui ne sera pas mise à jour [MPD]


Sujet :

Schéma

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut Pour une table qui contient peu d'enregistrements et qui ne sera pas mise à jour
    Bonjour à tous,

    J'ai une question dont on n'a pas trouvé une réponse.

    Prenons un exemple de deux entités : "Appareils" et "Types" avec une relation suivante :

    "Appareils" <--(0,1)------(relation)-----(0.n)---> "Types"

    sachant que la table "Types" contient une seule colonne avec peu d'enregistrements (3 ou 4) ET elle ne sera pas mise à jour.

    Est-ce qu'il est mieux de garder cette conception qui respecte les normes OU bien j'enleve la table "Types" et j'ajoute directement un attribut "type" dans la table "Appareils" ? surtout que je vais gagner, plus ou moins, une rapidité d'execution des requêtes.

    Cordialement.

  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
    Que seront ces types ?
    - Des noms explicites de types tels que "ordinateur", "véhicule", "machine"... ?
    - Des codes numériques ?
    - Des codes alphanumériques ? Dans ce dernier cas, de combien de caractères ?
    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 régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Merci CinePhil pour la réponse,

    Il s'agit des noms explicites : tablet - smartphone - watch

    Cordialement.

  4. #4
    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
    Alors il vaut mieux une table séparée des types ; non pas avec uen seule colonne mais deux : un identifiant du type et le libellé du type :
    tr_type_typ (typ_id, typ_libelle)

    Dans la table des appareils, il y aura une clé étrangère référençant l'identifiant du type :
    te_appareil_app (app_id, app_id_type...)

    Ainsi, la clé étrangère ne prend qu'un minimum de place : 4 octets pour un entier, voire moins s'il y a très peu de type et pour toujours et que votre SGBD prévoit des types encore plus courts tels que le TINYINT.

    Alors que si vous laissiez les noms des types en entier dans la table des appareils, vous occuperiez plus de place ("tablet" occupe au moins 6 octets, à raison d'un par lettre + un pour la longueur de la chaîne de caractères) et vous risqueriez d'avoir le même type écrit de plusieurs manières, ce qui ne faciliterait pas la recherche de tous les appareils d'un type.

    Bref, il vaut mieux respecter la norme.
    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 !

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Merci beaucoup CinePhil.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/03/2013, 20h39
  2. Comment vérifier qu'une table ne contient aucun enregistrement ?
    Par makaphrodite dans le forum Bases de données
    Réponses: 5
    Dernier message: 13/10/2008, 14h50
  3. Réponses: 8
    Dernier message: 26/03/2008, 16h58
  4. lien pour une table qui ne doit pas etre public
    Par raslain dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2005, 13h40
  5. Créer une partition pour une table
    Par Erakis dans le forum SQL Procédural
    Réponses: 22
    Dernier message: 28/02/2005, 18h39

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