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

Langage SQL Discussion :

mettre une entité date ou pas et surtout comment!!!


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut mettre une entité date ou pas et surtout comment!!!
    bonjour!
    voila mon problème.
    j'ai une base de donnée avec des tables ESSAI,ETAPE,PRODUIT
    alors en réalité on fait un essai sur un produit donné, dans un essai on a plusieurs etapes, moi ce dont j'ai absolument besoin c'est des date debut et date fin de l'essai,date debut et date fin de chaque etape, et leurs heure de debut et heure de fin, pour faire des statistiques.

    alors dois-je mettre une entité date, et quoi mettre dedans,je ne saispas comment faire pour diffénrecier date debut de l'essai et date début de l'étape par exemple!
    je sais que ça doit etre tout bete mais je n'arrive pas à trouver!! aidez moi pleaase!!!!

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Tu as déjà les champs correspondants dans tes tables ?
    Sinon, ajoute-les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE Essai ADD Date_Debut DATE;
    ...
    Pour la MAJ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Essai SET Date_Debut = TO_DATE ('11/04/2005 10:30:20', 'dd/mm/yyyy hh24:mi:ss') WHERE ...
    Pour trier, cela ne devrait pas poser problème, c'est comme pour un champ de type numérique ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    le souci c'est que je dois pouvoir faire un hsitorique, j'ai donc besoin d'une entité date,non?

    ce que tu me dis c'est de juste mettre datedeb,datefin dans la table ESSAI et la meme chose pour la table ESSAI???

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par faayy
    le souci c'est que je dois pouvoir faire un hsitorique, j'ai donc besoin d'une entité date,non?
    ce que tu me dis c'est de juste mettre datedeb,datefin dans la table ESSAI et la meme chose pour la table ESSAI???
    Oui. Si tu souhaites "historiser" tes essais, tu as besoin de ces 2 champs DateDebut et DateFin, au moins sur ta table Essai.

    Pour ta table Etape, peut-être pas, car si une étape correspond à plusieurs essais, alors :
    DateDebutEtape = Min (Essai.DateDebut)
    DateFinEtape = Max(Essai.DateFin)

    (je te laisse écrire les requêtes correspondantes, en faisant bien sur la jointure avec la FK de la table Essai qui la rattache à la table Etape)
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    en fait non c pas ca!

    j'ai un idEtape qui correspond à un essai donné (en fait je vais avoir plusieurs idEtape correspondant au meme essai)

    voila ce que j'ai fait :
    j'ai ma table ESSAI relié à la table PRODUIT par l'association "teste" j'ai relié à cette association une entité DATE (j'ai donc datedeb et datefin comme attribu de l'association "teste"), la deja pense tu que c'est juste?

    (je n'ai pas mis de datefin et datedeb dans ESSAI, mais juste dans "teste")

    deuxièmement, ESSAI est relié à ETAPE (qui elle est relié a TYPETAPE), on a donc une etape donné correspond a un ESSAI donné, la j'ai mis datedeb et datefin des etapes directement dans la table ETAPE.

    voila qu'en penses tu??

  6. #6
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Donc tu as une table PRODUIT,

    Un produit peut être soumis à un ou plusieurs test, stockés dans la table TESTE, et historisés par des champs de type Date Début et Fin,

    Un test est composé de plusieurs essais, mémorisés dans la table ESSAI,

    Et un essai est lui-même composé de diverses étapes stockées dans ETAPE, chaque étape étant caractérisée par dateDeb et dateFin.

    Donc oui, si ça correspond à tes besoins, cette structure me paraît pas mal
    Si pour un essai donné, tu as besoin de ses dates de début et de fin, tu les retrouveras dans tes étapes. Is it OK for you ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    bah tout est ok, sauf que un test c'est un essai sur un produit a une date donnée, un produit peut faire l'objet de plusieurs essais, mais un test c'est en meme temps un essai sur un produit donné! je n'ai pas plusieurs essais dans un test, ca peut poser probleme ca??

  8. #8
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Pour répondre à la question dans le titre, je ne crée une entité date que lorsque j'anticipe des calculs basés sur les dates (faisant intervenir la notion de jours ouvrés, de stockage d'agrégat pour un mois, une saison etc...) par contre je ne crée pas d'entité date si le pire que j'aurais à faire est un SELECT ... WHERE laDate BETWEEN ...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    bah moi c'est des statiqtiques et des historiques que je dois faire,mais je ne vois pas comment mettre une date et heure aun essai (de debut et de fin) ainsi qu'à chaque étape qu'il contient???

  10. #10
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par faayy
    bah moi c'est des statiqtiques et des historiques que je dois faire
    Donc oui, il te faut bien des champs de type Date pour faire un histo.

    Citation Envoyé par faayy
    mais je ne vois pas comment mettre une date et heure aun essai (de debut et de fin) ainsi qu'à chaque étape qu'il contient???
    Quel est ton problème à ce stade ? technique ? As-tu besoin d'un champ "date et heure" au niveau d'un essai, si tu as ces infos dans tes étapes ? En gros, est-ce que la date de début de l'étape = la date de début du premier essai, et la date de fin de l'essai = la date de fin de la dernière étape ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    en fait tu as raison je peux retrouver les dates debut et fin de mon essai avec ma première et ma dernière étape, cependant ce n'est pas plus compliké pour quand je devrai faire les states,c'est a dire au lieu de renseigner la date de l'essai (selet sum.... where datedebessai between...), je devrai récupérer date des première et dernières etapes, j'ai l'impression que ce sera plus compliké non?

  12. #12
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Sois une table Essai, avec un champ id_Essai (PK), un champ ref_Essai, etc.
    Soit une table Etape, avec une PK, un champ fk_Essai (FK), dateDeb, datFin, etc.

    Pour un essai donné, tu pourras obtenir les dates souhaitées avec cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Select ref_Essai, 
    (SELECT MIN(dateDeb) From Etape E_Min WHERE fk_Essai = id_Essai) AS EssaiDateDeb,
    (SELECT MAX(dateFin) From Etape E_Max WHERE fk_Essai = id_Essai) AS EssaiDateFin
    FROM Essai
    WHERE ...
    Si tu n'es pas à l'aise avec ce genre de requête, tu peux effectivement dupliquer tes champs dateDeb et dateFin dans ta table Essai. A toi alors de vérifier l'intégrité de tes données quand tu fais une MAJ
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    oui tu as tout à fait raison, je vais faire que deux champs date dans la table Etape.
    je te remercie pour ton aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2012, 23h52
  2. [MCD] Différence entre un Attribut Date et une Entité Date ?
    Par hugouu dans le forum Schéma
    Réponses: 9
    Dernier message: 20/12/2009, 23h52
  3. Réponses: 1
    Dernier message: 10/11/2005, 16h02
  4. mettre une entité date ou pas??
    Par faayy dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/04/2005, 09h00
  5. [MCD]Faut-il une Entité Date ?
    Par Francis dans le forum Schéma
    Réponses: 2
    Dernier message: 17/01/2005, 18h48

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