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

 MySQL Discussion :

Comment Structurer ma table pour ce type de requête


Sujet :

MySQL

  1. #1
    Nouveau membre du Club Avatar de debutantphp_70
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2020
    Messages : 57
    Points : 32
    Points
    32
    Par défaut Comment Structurer ma table pour ce type de requête
    Bonjour

    J'ai l intention de créer une table de cours de bourse avec les prix à l ouverture, la fermeture, le plus haut et le plus bas de chaque heure.

    Avec une requête je souhaite trouver le plus haut sur 24h00 'glissantes', c est à dire du 01.01.2020 13h00 au 02.01.2020 13h59, du 01.01.2020 14h00 au 02.01.2020 14h59... je crois que vous avez compris l idée.

    Je me demande donc s il est plus facile d'utiliser un champ DateTime ou un champ Date et un Champ Time.

    Si je me pose cette question c est qu j ai vu que l on pouvait appliquer le parametre INTERVAL 1 DAY dans une requete mais dans ce cas la sélection ne se ferait elle pas de 13h00 à 13h00 par exemple. Peut etre qu un champ DateTime avec interval 1339 ferait mon affaire.

    Ma table va contenir beaucoup de données donc j aimerai, outre les index, la construire de façon à ce qu elle soit aussi optimisée.

    Dernier point : est il plus rapide de faire 2 requêtes pour le plus_haut et le plus_bas ou une seule accélère le traitement (je ne connais pas grand chose aux requêtes imbriquées)

    merci pour vos conseils

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    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 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Une seule colonne (dans une base de données, il n'y a pas de "champ") permet d'utiliser l'opérateur between, plus simple dans votre cas d'horizon glissant.

    Une seule requête permet de récupérer le min et le max pour un même critère de regroupement, ce sera plus performant que deux accès.

  3. #3
    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
    J'ai l intention de créer une table de cours de bourse avec les prix à l ouverture, la fermeture, le plus haut et le plus bas de chaque heure.
    Ce qu'on entend généralement par "prix à l ouverture" et "prix à la fermeture" sont les cours à l'ouverture de la séance de bourse le matin et le cours à la clôture de la cotation le soir. Est-ce là aussi le cas ou bien souhaitez vous le cours en début et en fin de chaque heure ?
    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 !

  4. #4
    Nouveau membre du Club Avatar de debutantphp_70
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2020
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    merci pour vos réponses.

    @CinePhil Chaque enregistrement de la base de données correspondra effectivement au cours d'ouverture et de clôture non pas de bougies quotidiennes mais de bougies en 1 minutes.
    La stratégie que je souhaite évaluer est développée sur des bougies quotidienne mais donne assez peux de signaux. Les bougies quotidiennes lors de cotations 24h/24h comme les cfd (ce qui m intéresse) sont basées sur 00h00. De ce fait, afin de tester sur un panel plus large j envisage de reconstituer des bougies quotidiennes pour 00h, 01h, 02h... 23h00

  5. #5
    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
    OK,

    1) Vous chargerez votre table à partir d'un flux externe qui ne donnera que ces propriétés ?

    2) Vous analyserez plusieurs valeurs cotées, j'imagine ?


    Si oui aux deux question, alors voilà ce qu'il vous faut a minima :
    1) Une table des valeurs
    te_valeur_val (val_id, val_isin, val_nom...)

    Exemple :
    1, 'NL0000235190', 'Airbus'

    2) Une table des cotations
    te_cotations_cot (cot_id_valeur, cot_date_heure, cot_ouverture, cot_fermeture, cot_plus_haut, cot_plus_bas)

    Exemple :
    1, '2020-03-09 09:00', 87.43, 90.53, 90.68, 88,22


    Je vous laisse ensuite essayer de construire votre requête pour avoir le plus haut et le plus bas sur 24h.
    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 !

  6. #6
    Nouveau membre du Club Avatar de debutantphp_70
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2020
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    Merci pour ces conseils.
    Pour l instant je ne traite qu un produit à la fois donc je n ai que la table relative aux cotations.

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    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 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Ce n'est pas une raison : la table des produits ne doit contenir que les attributs du produit indépendamment de la date de cotation, sinon il y a redondance d'information et donc encombrement inutile de la BDD et risque d'erreurs.

    Le MCD étant
    [PRODUIT] 1,n --- coter --- 1,1 [COTATION]

    il y a obligatoirement deux tables (cardinalité maxi n coté produit oblige)

  8. #8
    Nouveau membre du Club Avatar de debutantphp_70
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2020
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2020
    Messages : 57
    Points : 32
    Points
    32
    Par défaut
    Merci mais je me suis peut être mal fait comprendre ou je n ai pas compris mais dans mon cas il n y a pas de redondance puisque j importe le fichier des cotations relatives à un seul et unique produit donc je n ai pas besoin de la première table qui référence tous les produits.
    Si j utilise une bdd c est que le fichier est trop important pour faire comme je fais avec un fichier plus léger, c est à dire tout mettre dans une liste d objets. C est simplement pour avoir une structure et me faciliter la vie à faire des requêtes au lieu de boucles.

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

Discussions similaires

  1. [JpGraph] Comment adapter ma table pour faire un type de graphique
    Par Debutant10 dans le forum Bibliothèques et frameworks
    Réponses: 37
    Dernier message: 26/06/2012, 05h10
  2. structure de table pour outil de recherche
    Par vasilov dans le forum Schéma
    Réponses: 4
    Dernier message: 26/09/2008, 14h49
  3. Comment structurer ma table si plusieurs choix sont possibles
    Par dedelem dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/04/2008, 16h59
  4. structure des tables pour un site de rencontres
    Par hatembr dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/01/2008, 00h50
  5. structure de table pour un organigramme
    Par thyphoon dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/10/2006, 12h05

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