sql >> Database teknologi >  >> RDS >> Mysql

Afkobling af MySQL-data versus brugervenlighed

Lad mig begynde at besvare dette med en historie. (Noget forenklet.)

2011-01-01 Jeg reserverer et værelse til to nætter, 2011-03-01 og 2011-03-02. Fortæl mig ikke hvilket værelse jeg får. (Fordi du endnu ikke ved, hvilket værelse jeg får.) Du fortæller mig, at det vil koste $40 per nat. Jeg har ingen kuponer. Du indtaster min reservation på din computer, selvom du allerede er fuldt reserveret til begge disse nætter. Faktisk har du allerede én person på ventelisten til begge disse nætter. (Overbooking er en normal ting, ikke en unormal ting.)

2011-01-15 Du hæver priserne for hvert værelse med $5.

2011-02-01 Jeg ringer igen for at sikre, at du stadig har min reservation. Du bekræfter, at jeg har en reservation for to nætter, 2011-03-01 og 2011-03-02, til $40. (Ikke $45, din nuværende kurs. Det var ikke vores aftale. Vores aftale var $40 pr. nat.)

2011-02-12 En person ringer og annullerer deres reservation for 2011-03-01 og 2011-03-02. Du har stadig ikke et værelse, du ved med sikkerhed, som jeg kan tjekke ind på. Den anden person fra ventelisten har nu et værelse; Jeg er stadig på ventelisten.

2011-02-15 Én person ringer og annullerer deres reservation for 2011-03-01 og 2011-03-02. Nu har jeg et værelse.

2011-03-01 Jeg tjekker ind med en kupon.

  • Du kan gemme den "aktuelle" eller "standard" pris med hvert værelse eller med hver klasse af værelser, men du skal gemme den pris, vi har aftalt med min reservation.
  • Reservationer reserverer ikke værelser; de reserverer potentielle værelser. Du ved ikke, hvem der går tidligt, hvem der går sent, hvem der vil aflyse og så videre. (Baseret på min erfaring vil et rum en gang imellem blive forseglet med kriminalitetstape. Du ved heller ikke, hvor længe det vil vare.)
  • Du kan have flere reservationer end værelsesovernatninger.
  • Kuponer kan formodentlig vises når som helst før udtjekning.

Det tror jeg ikke. Den pris, du har aftalt, skal stå i selve reservationen. Specifikke lokaler kan ikke rimeligt tildeles før i sidste øjeblik. Hvis der er én kupon pr. reservation, skal den muligvis også gemmes sammen med reservationen.

Det eneste rapporteringsproblem er at sikre, at dine rapporter tydeligt rapporterer, hvor meget forventet omsætning der skal ignoreres på grund af overbooking.



  1. Oracle/SQL:Hvorfor forespørger SELECT * FROM records WHERE rownum>=5 AND rownum <=10 - returnerer nul rækker

  2. Spring Docker container kan ikke få adgang til Postgres Docker container

  3. Omdøbning af en enum-værdi resulterer i Typerelation ikke fundet

  4. MySQLNonTransientConnectionException Kunne ikke oprette forbindelse til databaseserveren. Forårsaget af:java.lang.NullPointerException