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

Mathématiques Discussion :

calculer la disponibilité d'un produit


Sujet :

Mathématiques

  1. #1
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut calculer la disponibilité d'un produit
    Salut,

    Premier post dans ce forum
    J'ai lu une discussion une fois, mais j'ai été assez rapidement largué.

    Voilà, je bosse pour une société de commerce éléctronique. Nous gérons donc un certain nombre de produits dont la disponibilité varie en fonction du temps.

    J'ai mis une petite image en pj. La grille représente la disponibilité d'un produit sur 30 jours (rouge pas dispo, vert dispo).

    Y a-t-il un moyen pour calculer rapidement la disponibilité d'un produit (la somme de dispo de chaque article) en fonction d'un jour et d'une durée sans interruption.

    Ex, je veux reserver entre les jour 10 et 17, j'ai une continuité sur plusieurs articles. Quelle est la quantité maximum que je peux reserver?
    Ex2, je veux reserver entre les jours 21 et 28, là aucune dispo.

    Merci d'avance.

    Immo
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Y a-t-il un moyen pour calculer rapidement la disponibilité d'un produit (la somme de dispo de chaque article) en fonction d'un jour et d'une durée sans interruption.
    Oui, il y a surement un moyen. Maintenant, c'est quoi ta définition de "rapidement" ?

  3. #3
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Vite vite vite?

    En fait, j'ai plusieurs milliers de tables comme celles-ci et je voudrais obtenir un résultat en un quart de seconde...

    Pour expliquer le fond du problème, il s'agit de faire un moteur de recherche pour obtenir en temps réél la dispo des produits. Donc il faut compter le temps de récupérer (stockée dans une base de données SQL) les données les traiter et les restituer...

    A ton avis à part faire appel à un super calculateur, y'a un solution?

    Merci de ton aide.

    A+

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    En fait, j'ai plusieurs milliers de tables comme celles-ci et je voudrais obtenir un résultat en un quart de seconde...
    Dans ce cas, il faut que tu précalcules, pour chaque jour, le nombre d'occupations cumulé depuis le début du mois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       J1 J2 J3 J4 J5 J6 J7 J8 J9 ...
    A5 00 00 00 01 01 01 02 02 02 ...
    A4 00 01 01 01 01 01 01 02 02 ... 
    A3 00 01 01 01 01 01 01 01 02 ...
    A2 00 00 01 01 01 01 01 01 02 ... 
    A1 00 00 00 00 00 01 01 01 01 ...
    Pour connaitre l'occupation sur une période, il suffit de faire la soustraction entre les 2 valeurs début/fin de la période.

    Pour la période [J4,J8]:

    pour A5 = 02-01 = 01
    pour A4 = 02-01 = 01
    pour A3 = 01-01 = 00 (vide, c'est dispo)
    pour A2 = 01-01 = 00 (vide, c'est dispo)
    pour A1 = 01-00 = 01

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Dans ce cas, il faut que tu précalcules, pour chaque jour, le nombre d'occupations cumulé depuis le début du mois.
    Interessant, j'ai bien fait de venir ici. Les reservations pouvant être faites sur n'importe quelle periode, le calcul devra commencer à partir de la date du jour sur 18 mois environ voir plus.
    Tu dis qu'il faut faire le cumul du nombre d'occupation? Je ne vois pas bien comment tu fais pour avoir cette ligne (et les autres)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       J1 J2 J3 J4 J5 J6 J7 J8 J9 ...
    A5 00 00 00 01 01 01 02 02 02 ...
    Dans mon esprit cumul signfie J3 = J2 + J1, J4 = J3 + J2 + J1, etc.

    Merci de ton aide.

    A+

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    IDans mon esprit cumul signfie J3 = J2 + J1, J4 = J3 + J2 + J1, etc.
    si J n'est pas reservé : valeur[J] = valeur[J-1]
    si J est reservé: valeur[J] = valeur[J-1] + 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       J1 J2 J3 J4 J5 J6 J7 J8 J9 ...
    A5 -- -- -- XX -- -- XX -- -- ...
    >> 00 00 00 01 01 01 02 02 02 ...

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Vision très interessante

    C'est bien l'algorithmique

    Je dois stocker ça quelque part. A ton avis sous SQL je mets ça dans une table avec une ligne pour chaque jour?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PRODUIT_ID   ART_ID        DATE        OCCUPE
        456       123       2009-03-17       1
        456       123       2009-03-18       0
        456       123       2009-03-19       0
        456       123       2009-03-20       1
        456       123       2009-03-21       0
        456       789       2009-03-17       1
        456       789       2009-03-18       1
        456       789       2009-03-19       0

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Je dois stocker ça quelque part. A ton avis sous SQL je mets ça dans une table avec une ligne pour chaque jour?
    Tu as déjà une base de données ?

    Pourquoi tu ne fais pas directement une query SQL pour remonter les articles qui t'intéressent ?

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Arf y'a trop d'enregistrements, les tables sont trop grosses. Il faut un truc rapide. En plus le calcul de la dispo est pas facile à faire juste en SQL. C'est une compilation entre un tarif sur une periode, un nombre d'articles sur une periode, des immobilisations sur les articles (vente, stop vente). Un truc de ouf. Il faut que je fasse un précalcul car le moteur de recherche doit me fournir un résultat => la liste des produits correspondants à ma recherche en une seconde chrono.

    Par la suite pour accélérer encore plus, j'imagine qu'il faudra que j'index le resultat.

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Arf y'a trop d'enregistrements, les tables sont trop grosses. Il faut un truc rapide.
    Bon, bah dans ce cas tu peux effectivement construire une table comme celle de ton post précédant.

    Ensuite il faut construire le tableau de cumul des occupations pour chaque article. C'est la phase la plus longue (query sql + remplissage du tableau).

    Si tu fais souvent des requetes tu devrais garder en mémoire ce tableau. Ou au moins le stocker quelque part (un blob dans ta BdD).

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Je pense que j'en mettrai des versions dans le cache de IIS.

    Merci de ton aide. A+

    Je mets résolu pour le moment.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/05/2010, 17h58
  2. [AC-2007] Calcul de disponibilité
    Par wekas dans le forum Access
    Réponses: 1
    Dernier message: 24/04/2009, 15h35
  3. Comment calculer un indicateur de disponibilité de RACF ?
    Par BrandonCougar dans le forum z/OS
    Réponses: 6
    Dernier message: 11/07/2008, 10h53
  4. calcul de produit scalaire sous PHP
    Par abegault dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2008, 14h41
  5. comment calculer le produit de deux nombres en PHP
    Par batalich dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2007, 09h02

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