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

 PostgreSQL Discussion :

Table vs Enum et DateTime vs TimeStamp


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2013
    Messages : 65
    Points : 39
    Points
    39
    Par défaut Table vs Enum et DateTime vs TimeStamp
    Bonjour!

    Je vais devoir créer une base (qui est destinée à être utilisée par une appli nodeJS) et je voudrais connaitre les différences/avantages/désavantage entre certains type de champs :

    Table vs Enum :
    Je n'ai quasiment jamais vu d'Enum, en général on préfère utilliser une table "secondaire" qui sert de référence dans une autre, pourquoi ?
    Avec un Enum, peut-on retrouver la valeur correspondante ? Peut-on la modifier (ajout/suppr de valeur) avec une requête ?
    (question sûrement bête mais : ) Je suppose qu'un champs défini sur un Enum doit forcément contenir une de ses valeur, sinon erreur ? (genre comme une FK)

    En cherchant un peu j'ai trouvé qu'il vaut mieux utiliser un Enum si le contenu ne sera que très peu changé, et que son utilisation inclu une "duplication" (dans le sens ou chaque ligne contiendra par exemple "Valeur1" au lieu d'une clé.
    Imaginons qu'on utilise un Enum, que beaucoup de ligne contiennent "Valeur1", est-il possible de modifier cette valeur ou est-ce déconseillé ?


    DateTime et TimeStamp :
    Dans quel(s) cas faut-il préférer un DateTime a un TimeStamp (ou l'inverse) pour stocker une date ?

    Merc d'avance!

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Un enum viole la première forme normale dans ce sens ou c'est une collection d'information et non pas une information atomique. Dès lors ce n'est plus une base de données relationnelle, mais un base multivaluée comme celles que nous avions dans les années 70 et qui a disparu du fait du darwinisme…

    Pourquoi ce darwinisme ? Tout simplement par ce qu'il n'est pas possible d'indexer un type composé de plusieurs informations. Dès lors, toutes les requêtes nécessitant une quelconque recherche, groupage, dédoublonnement ou tri vont être lamentablement lente reléguant votre base aux oubliettes du CoBOL et des fichiers ISAM....

    Quant au TIMESTAMP vs DATETIME, c'est kifkif bourricot ! Le plus important est sans doute de se poser la question du TU ou du TZ et non du temps localisé…. Mondialisation et changement d(horaire d'été et d'hiver oblige….

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2013
    Messages : 65
    Points : 39
    Points
    39
    Par défaut
    C'est noté! Merci pour la réponse!

Discussions similaires

  1. Table vs Enum
    Par Firlfire dans le forum MySQL
    Réponses: 5
    Dernier message: 18/04/2018, 12h14
  2. Réponses: 2
    Dernier message: 01/07/2015, 10h55
  3. Table input et paramètres de type timestamp
    Par tiahnmiss dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 19/02/2013, 11h04
  4. convertir datetime vers timestamp
    Par thor76160 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2011, 17h44
  5. Réponses: 0
    Dernier message: 08/02/2011, 18h46

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