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 :

où placer mes champs date ?


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 72
    Points : 56
    Points
    56
    Par défaut où placer mes champs date ?
    Bonjour,

    Je dois réaliser une base de données, et j'ai pu établir le schéma de cette base. Cependant, j'ai l'impression que certaines choses clochent.
    Je vous joins ce schéma afin de mieux me faire comprendre.

    Tout d'abord, le "moins important" : dans la table "Site", j'ai 2 champs pouvant faire office de clé : "id_site" et "num_site". Mon premier champ "id_site" est la clé, auto-incrémentée. Mon second champ ne comprendra que des nombres à 3 chiffres, qui ne risquent pas de changer (ex : '047', '135'). Je me demandais donc si je ne pouvais pas simplement supprimer le premier champ auto-incrémenté et utiliser le deuxième comme clé.

    Ma question suivante (celle qui m'intéresse le plus) porte sur la table "P1_result" (et les 2 autres tables similaires). J'ai créé 2 champs "mois" et "annee" sur cette table, mais je me demande si je ne ferais pas mieux de créer une nouvelle table pour ces champs afin de les utiliser (en tant que clé étrangère) comme clé primaire dans "P1_result" et les autres tables les utilisant...

    Enfin, si vous avez d'autres suggestions sur mon schéma... N'hésitez pas
    Images attachées Images attachées  

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut commentaires.
    Je dois réaliser une base de données, et j'ai pu établir le schéma de cette base. Cependant, j'ai l'impression que certaines choses clochent.
    Je vous joins ce schéma afin de mieux me faire comprendre.

    Tout d'abord, le "moins important" : dans la table "Site", j'ai 2 champs pouvant faire office de clé : "id_site" et "num_site". Mon premier champ "id_site" est la clé, auto-incrémentée. Mon second champ ne comprendra que des nombres à 3 chiffres, qui ne risquent pas de changer (ex : '047', '135'). Je me demandais donc si je ne pouvais pas simplement supprimer le premier champ auto-incrémenté et utiliser le deuxième comme clé.

    Ma question suivante (celle qui m'intéresse le plus) porte sur la table "P1_result" (et les 2 autres tables similaires). J'ai créé 2 champs "mois" et "annee" sur cette table, mais je me demande si je ne ferais pas mieux de créer une nouvelle table pour ces champs afin de les utiliser (en tant que clé étrangère) comme clé primaire dans "P1_result" et les autres tables les utilisant...
    Je te donne mon avis...

    Concernant la première question, evite la redondance de cle, je garderais plutôt la cle autoincremente mais si tu as besoin de num site dans ton application, alors vire la cle auto-incremente. Une seul cle est suffisante.
    lis cet article de sql pro pour comprendre mon point de vue :
    http://sqlpro.developpez.com/cours/clefs/

    Concernant la seconde question, il est bien de sortir les champs mois et annee si tu as une information supplementaire à stocker comme une colonne commentaire par exemple, sinon, personnellement, je ne vois pas trop l'interet de regrouper les champs mois et annee dans une table. Cela constituerait une table qu'avec une cle. pourquoi faire ?
    Par contre, si tu cree une table (id_date, mois, annee) avec id date autoincremente, cela permet de reduire l'information stockee dans tes 3 tables puisque tu stocke que la cle autoincremente mais tu perd en lisibilite...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 72
    Points : 56
    Points
    56
    Par défaut
    Pour ma première question, j'ai effectivement besoin de mon num_site. J'hésitais à le mettre en clé primaire car je vais devoir le stocker en chaîne de caractères (j'ai besoin de conserver le '0' de '047', et je ne crois pas qu'un type tel qu'integer me le permette), et je n'ai pas l'habitude d'avoir des clés en chaîne de caractère... De plus une autre personne me conseillait la clé auto-incrémentée, contrairement à mon avis...

    Concernant ma deuxième question, je vais suivre ton avis et laisser ces champs "mois" et "annee" tels quels. La lisibilité me semble plus importante : chacune des 3 tables "P_result" ne devrait recevoir qu'entre 6000 et 6500 données par an (450/mois) (base MySQL), ce qui ne constitue pas une base énorme...
    De plus, la personne qui sera chargée de la maintenir n'est pas experte (moi non plus d'ailleurs, mais quand même un peu plus ), donc je préfère lui simplifier la tâche au maximum !

    Puisque tu ne m'as pas fais d'autres remarques Ylarvor, je suppose que je ne me suis pas trop mal débrouillé pour le reste...
    Merci pour tes conseils Ylarvor, tu m'as rassuré !

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

Discussions similaires

  1. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  2. Champ Date à '01/01/0001' -> Pb conversion de variant !!!
    Par AnnSo dans le forum Bases de données
    Réponses: 6
    Dernier message: 04/06/2004, 16h54
  3. récuperer année d'un champ date
    Par tomm dans le forum Bases de données
    Réponses: 11
    Dernier message: 12/05/2004, 16h24
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  5. procedure stockée champ date
    Par tripper.dim dans le forum SQL
    Réponses: 5
    Dernier message: 25/04/2003, 09h47

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