Schematisation de mon programme php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Schematisation de mon programme php

Re: Schematisation de mon programme php

par Spols » 03 mai 2019, 11:45

tout d'abords, ta modification ne tiens pas dès qu'il y a plus d'une réservation en cours. ma solution le prenais en compte

J'avais pas compris ton problème de stock, je voyais les engins comme une entité unique et si tu as 2 engins identiques, il aurait 2 id différent. est-ce envisageable ?

Re: Schematisation de mon programme php

par TheoLeao » 03 mai 2019, 11:12

Merci de ta réponse,
Imaginons cette nouvelle disposition:

Table engins:id_engin, nom,type,dateEntree,dateSortie
Table type: id_type, nom_type
Table reservation_engins: id_resa,id_engin, dateDebut, dateFin

avec:
- engins[type] C type[id_type]
- reservations_engin[id_engin] C engins[id_engin]

où dateEntree correpond à l'entrée de l'engin dans l'établissement (soit par ajout manuel, soit par retour de prêt validé par l'admin)
où dateSortie correspond à la sortie de l'engin de l'établissement définit lorsqu'il est prêté

Donc ma condition pour vérifier la disponibilité serait:
Afficher la ligne SI
- dans ENGINS, type = type voulu
ET
- dateEntree < dateDebut ET dateSortie < dateDebut (1er cas: déjà réservé, mais revenu à tant)
OU - dateEntree < dateDebut ET dateSortie est null (2nd cas: nouvel engin disponible mais jamais prêté)
OU - dateEntree < dateDebut ET dateSortie>dateFin (3e cas: engin disponible, déjà réservé mais pour aprés la date de fin)

ça me semble correct, qu'en pense-tu?
Mais concernant la vérification de stock, étant donné que je n'ai pas de variable stock, mais juste une ligne par engin.
Comment puis-je faire, par exemple si il y a que 3 engins disponible et qu'il en veux quatre.
Il y aura donc que 4 lignes qui correspond à ces critères dans ma table engins.
Comment gérer cet erreur et lui dire que pour cet intervalle, il n'y a que 3?

A vrai dire, je suis novice en SQL..

Merci beaucoup

Re: Schematisation de mon programme php

par Spols » 03 mai 2019, 10:35

Pour t'assure qu'une nouvelle reservation n'ai pas de conflits avec les autres, il faut que les dates de débu/fin de la nouvelle reservation ne soit pas inclu entre les dates de chaque réservation ET que les dates de début/fin de chaque reservation ne soit pas compris entre les dates de la nouvelle reservation.

en cas de tables assez grandes, tu peux réduire le nombre de comparaison en excluant les réservation avec date de débuts > date de fin de la nouvelle réservation et l'inverse est aussi vrai.

Schematisation de mon programme php

par TheoLeao » 03 mai 2019, 09:52

Bonjour, j'espère que vous allez bien.
Je rencontre des difficultés à mettre en place un système de réservation (avec demande et acceptation).

Mise en contexte: Je souhaite réalisé un système de réservation (d'engins), possibilité de réserver pour plusieurs jours.

Formulaire de réservation: Nom, Type, Date de début, Date de fin

Table engin: id_engin, nom_engin, type_engin
Table reservation_engin: id_reservation, id_engin, dateDebut, dateFin

J'ai donc décidé dans la table engin, de créer une ligne par engin, pour ne pas à avoir à gérer de stock. Parce que le stock peut être différent d'un jour à un autre pour le même engin.
Je sais que ma configuration est fausse, mais je n'arrive pas à imaginer la liaison entre les dates et les stocks afin de définir si durant ce créneau un engin est disponible ou non.
Quelqu'un pourrez me mettre sur la piste?

Je travaille avec du php/sql.

J'espère que j'ai été suffisamment clair ^^

Merci beaucoup de m'avoir lu