2.8.1. Étterem
A rendszer nagyvonalú ismertetése:
Az étteremben különféle ételeket és italokat rendelhetünk, amelyeket bizonyos nyersanyagokból, recept szerint készítenek el. A fogyasztás végén számla alapján fizetünk.
Az adatbázis hétköznapi, az ügyvitel egyszerű, mindenki számára elképzelhető.
ANYAG tábla a nyersanyagok törzse; pl. '12345', 'rétesliszt', 120, 'kg'
ÉTLAP tábla az ételek törzse; pl. '122333', 'Vadas marha', 750, 'K'
FAJTA tábla az ételek fajtájának szótára; pl. 'F', 'frissensült'
RECEPT tábla az ÉTLAP és ANYAG kapcsolótáblája, az ételekbe beépülő anyagok mennyiségével; pl. '555556', '54321', 0.25
SZÁMLAFEJ tábla a számlák törzse; pl. '2003/3334', 03.05.23., 4560
SZÁMLATÉTEL tábla az ÉTLAP és SZÁMLAFEJ kapcsolótáblája, a számlákon szereplő ételek mennyiségével; pl. '2003/1224', '444456', 2
A kapcsolatok ügyesen kiolvashatók az ábrából. (Minden nyíl a külső kulcsról mutat az egyedi kulcsra (bekarikázva), azaz a sokból az egybe.) A kapcsolatok nyelvtani megfelelője:
- egy fajtára több étel is készülhet
- egy étel több anyagból épülhet fel recept szerint
- egy anyag több ételbe beépülhet
- egy számlán több ételt rendelhettek ( itt nem adagot, hanem ételféleséget)
- egy étel több számlán is szerepelhet
Az ügyvitel folyamatainak áttekintése:
Itt "végigzongorázzuk" a folyamatokat (mint pl. étlapkészítés, termékdefiniálás, rendelésfelvétel, számlaadás, forgalomkimutatás stb.), miközben technikai adatokkal toldjuk meg az adatállományainkat.
Ilyenek pl.
- az ÉTLAP van logikai mezeje, hiszen ettől függ, mely étel-ital van éppen étlapon.
- a SZÁMLAFEJ kifizet logikai mezeje, hiszen ennek állapota utal arra, hogy ki van-e már fizetve a számla.
- Termékdefiniáláskor például nemcsak az ÉTLAP bővül egy sorral, hanem a RECEPT is akár több sorral, ill. az ANYAG, ha eddig még ilyen nem szerepelt. A FAJTA ugyancsak bővülhet, ha új ételtípust definiálunk.
- Az étlapkészítés valójában egy lekérdezés, amit segít majd egy szezontól / szakácstól függő beállítás (van-e).
- Egy rendelés felvétele nem egy funkció, hiszen a rendelést elkezdik, folytathatják és kifizetik. Felvitelkor egy sor születik a SZÁMLAFEJben és legalább egy sor a SZÁMLATÉTELben. A számlaszám generált azonosító, a végösszeg csak a kifizetéskor kerül be. Ha a vendég folytatja a rendelését, akkor meg kell találni a nyitott számlák között az övét, illetve régi tételének módosítását vagy új tétel felvitelét végrehajtani. Ezért legalább a számlák lezárását (kifizetve_e) be kell jegyezni az adatbázisba.
- A számlaadás valójában egy számla lezárását jelenti: a végösszeg kiszámítását követő sor-módosítást és egy tételes lekérdezés nyomtatását.
- A forgalomkimutatás valamilyen statisztika lekérése, mindig egy lekérdezés eredményét jeleníti meg. Pl. napi árbevétel, legjobban fogyó ételek, legsikeresebb ételfajták, stb.
Ne felejtsük el, hogy az adatbázis épségének megőrzése a hivatkozási- és adatintegritás betartásával történik (Ilyenek a külső kulcsok értékei vagy a mennyiségek korlátozása nagyobb, mint nullára.). Ezeket minden adatbáziskezelő automatikusan betartja, ha gondoskodunk róla a megszorítások definiálásakor. (Megszorításokat ld. később)