sql >> Databáze >  >> RDS >> Mysql

Oddělení dat MySQL versus snadné použití

Dovolte mi, abych na to začal odpovědět příběhem. (Poněkud zjednodušené.)

2011-01-01 Rezervuji pokoj na dvě noci, 2011-03-01 a 2011-03-02. Neříkej mi, který pokoj dostanu. (Protože ještě nevíš, který pokoj dostanu.) Řekneš mi, že to bude stát 40 dolarů za noc. Nemám žádné kupony. Zadáte moji rezervaci do svého počítače, i když jste již plně rezervováni na obě tyto noci. Ve skutečnosti už máte jednu osobu na čekací listině na obě tyto noci. (Nadměrná rezervace je normální věc, nikoli abnormální věc.)

2011-01-15 Zvýšíte ceny za každý pokoj o 5 $.

2011-02-01 Volám znovu, abych se ujistil, že stále máte moji rezervaci. Potvrzujete, že mám rezervaci na dvě noci, 2011-03-01 a 2011-03-02, za 40 USD. (Ne 45 USD, váš aktuální kurz. To nebyla naše dohoda. Naše dohoda byla 40 USD za noc.)

2011-02-12 Jedna osoba zavolá a zruší svou rezervaci na 01.03.2011 a 2011-03-02. Stále ještě nemáte pokoj, o kterém jistě víte, že se do něj budu moci přihlásit. Druhá osoba z čekací listiny má nyní pokoj; Stále jsem na čekací listině.

2011-02-15 Jedna osoba zavolá a zruší svou rezervaci na 01.03.2011 a 2011-03-02. Teď mám pokoj.

2011-03-01 Přihlašuji se pomocí kupónu.

  • Můžete uložit "aktuální" nebo "výchozí" cenu s každým pokojem nebo s každou třídou pokojů, ale musíte uložit cenu, na které jsme se dohodli s mojí rezervací.
  • Rezervace nerezervují pokoje; rezervují potenciální místnosti. Nevíte, kdo odejde dříve, kdo odejde pozdě, kdo zruší, a tak dále. (Podle mých zkušeností bude místnost jednou za čas přelepena páskou z místa činu. Ani nevíte, jak dlouho to bude trvat.)
  • Můžete mít více rezervací, než je počet pokojů a nocí.
  • Kupóny se pravděpodobně mohou objevit kdykoli před placením.

Myslím, že ne. Cena, se kterou jste souhlasili, by měla být uvedena v samotné rezervaci. Konkrétní místnosti nelze do poslední chvíle rozumně přiřadit. Pokud je na jednu rezervaci jeden kupón, může být nutné jej také uložit s rezervací.

Jediným problémem při vytváření přehledů je zajistit, aby vaše přehledy jasně uváděly, kolik očekávaných příjmů by mělo být ignorováno kvůli nadměrné rezervaci.



  1. Návrh databáze pro vytváření tabulek za chodu

  2. mysql - Použití vnějšího spojení na komplexní příkaz

  3. Dotaz pomocí dvou hodnot sloupce vytvořit rozsah

  4. Iterace přes záznamy PostgreSQL. Jak odkazovat na data z dalšího řádku?