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

Requêtes MySQL Discussion :

Choix de type de données optimisé


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut Choix de type de données optimisé
    Bonjour,

    je conçois une table MySql dont une des colonnes doit contenir des dates au format MM-YY. Quel est le meilleur choix de type (DATE, DATETIME ou autre chose ?) ?

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par défaut
    bonjour,

    Expliquez le contexte fonctionnel : quel est le besoin ?
    Mais a priori, créez une colonne de type date (avec l'année donc) et supprimez l'année au moment de la restitution.
    Ainsi vous bénéficierez de tous les contrôles liés au type date (validité de la date) et de toutes les fonctions associées (ajout de jours, décalage, jour de la semaine correspondant...)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    Je suis d'accord avec Escartefigue sur le fait que nous avons besoin du contexte.
    Et notamment est-ce que ce mois de l'année sera présent dans plusieurs tables ou pas.
    Escartefigue, j'ai l'impression que tu as mal lu, laurent a besoin du mois et de l'année sur 2 caractères mais pas du jour.

    Personnellement sans contexte, je partirai sur une table des mois
    Clé entier ANNEE+MOIS sur 2 chiffre (201901, 201902,...2019-03)
    Année entier
    Mois entier
    AnneeeMoisAffichee char(5) qui contiendrait 01-19, 02-19
    optionnel un entier sequentiel qui donnerait le nombre de mois depuis un mois donné (ce qui permettrait d'ajouter facilement 3 mois sans se demander si on a changé d'année ou pas.

    Et une foreign key sur cette table dans ta table finale
    ce qui me semble certain est qu'il ne faut pas stocker le mois en char(5) sous la forme demandée 01-19, sinon pour les tri ce sera l'enfer.

    Cordialement
    Soazig

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Ou bien une colonne de type date où on ne placera que les premiers jours du mois.
    Ce qui permet de profiter de toutes les fonctions de gestion de date...
    Ensuite, pour le format, ce n'est qu'une question d'affichage.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    merci pour vos réponses que je ne vois que maintenant, ayant oublié de demander une notification...

    Le contexte : tout ce que je peux dire, c'est que je vais récupérer des fichiers csv dont chaque ligne (17 colonnes) décrit une demande d'intervention, avec notamment le produit concerné, un horodatage, le status, le lieu, le nom de la personne qui l'a soumise, etc.
    Je pense donc que la date ne sera que dans une seule table. (l'idée étant de stocker les informations puis de pouvoir les afficher)

    S'il y a plusieurs tables, c'est uniquement pour optimiser la taille des tables. Par exemple, il y a une colonne Priority avec les valeurs low, medium ou high. Plutôt que stocker à chaque fois ces chaînes de caractères, je vois une table Priority (id, name) avec 3 enregistrements : (1, low) (2, medium) (3, high) où la clé primaire sera id et dans ma table principale une clé étrangère contenant une de ces 3 valeurs.

    En résumé de vos réponses, la colonne sera de type DATE (YYYY-MM-DD) (ce qui donnera donc accès à toutes les fonctions de manipulation de date) et comme le jour n'a aucune importance, j'y mettrai 01. C'est OK ? (ne connaissant pas tous les types disponibles, j'hésitais pour choisir la formule la plus économe en taille mémoire).

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par défaut
    Oui, une colonne date dont la partie joue est valorisée à "01" c'est parfait

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/09/2010, 09h51
  2. Choix de type de base de données ( Débutant )
    Par cobra91 dans le forum Débuter
    Réponses: 13
    Dernier message: 28/05/2007, 22h36
  3. [Table]choix d'un type de données
    Par moktar86 dans le forum Modélisation
    Réponses: 2
    Dernier message: 16/04/2007, 10h41
  4. [table] choix du type de données
    Par camzo dans le forum Access
    Réponses: 8
    Dernier message: 21/03/2007, 09h21
  5. Choix de type de données oracle
    Par dadg dans le forum Oracle
    Réponses: 3
    Dernier message: 04/09/2006, 13h56

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