Adatbázis háttér játszóházi beléptető és nyilvántartó rendszerhez Egy valós rendszer bemutatása

Hasonló dokumentumok
MAGYAR-KÍNAI KÉT TANÍTÁSI NYELVŰ ÁLTALÁNOS ISKOLA ÉS GIMNÁZIUM

Tartalomjegyzék - 1 -

VERSENYTANÁCS. határozatot

Általános Szerződési Feltételek

3. Állapítsa meg, hogy 1 db. KÖNYV 5. kötete és annak egyes részei szerzői jogvédelem alatt állnak-e.

Integrált ügyviteli rendszer: Kettős könyvelés modul

Everlink Parkoló rendszer Felhasználói és Üzemeltetési útmutató

EGYENLŐ BÁNÁSMÓD HATÓSÁG. Elnök

Magyar Nőorvos Társaság 1082 Budapest Üllői út 78/a. LELTÁROZÁSI SZABÁLYZAT. Érvényes: szeptember 8-tól (előterjesztés)

NÁLAD A NYERŐ KOMBINÁCIÓ? ELNEVEZÉSŰ NYEREMÉNYJÁTÉK RÉSZVÉTELI ÉS JÁTÉKSZABÁLYZATA

ÚTMUTATÓ. a Nemzeti Civil Alapprogram évi pályázatainak szakmai és pénzügyi elszámolásához

A szoftverrel kapcsolatos elvárásaikat a cég fontos emberei így fogalmazták meg:

Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László

FEJÉR MEGYE KÖZGYŐLÉSÉNEK ÁPRILIS 26-I ÜLÉSÉRE

ÚTMUTATÓ. Újdonság a adóévtől!

BIHARKERESZTES VÁROS POLGÁRMESTERI HIVATALA

Általános Szerződési Feltételek

AZ ÓBUDAI EGYETEM SZAKIRÁNYÚ TOVÁBBKÉPZÉS TANULMÁNYI és VIZSGASZABÁLYZATA

HASZNOS TUDNIVALÓK. a január 1-től érvényes egyes fixösszegű ellátásokról, adó- és tb-törvények fontosabb változásairól

AZ ÜZLETI BIZTOSÍTÁS, A NYUGDÍJBIZTOSÍTÁS ÉS AZ EGÉSZSÉGBIZTOSÍTÁS JOGI SZABÁLYOZÁSÁNAK PROBLÉMÁI

A számviteli törvény évi változásai, 2012-es üzleti év zárása (3x45 perc)

Segédlet a lakásszövetkezetek tisztségviselőinek megválasztásához

Szakmai délutánok a Bankárképzőben A pénzügyi szektort érintő jogszabályváltozások 2010-ben

Általános szerződési feltételek

E-ÉPÍTÉSI NAPLÓ KÉZIKÖNYV

Általános Szerződési Feltételek (ÁSZF) Szolgáltató adatai: Általános tudnivalók:

A Magyar Telekom Nyrt. helyhez kötött műsorterjesztési szolgáltatásra vonatkozó Általános Szerződési Feltételei (rövid neve: TV ÁSZF)

Útmutató Támogatási Kérelem kitöltéséhez GUL-15-C

Egy helytelen törvényi tényállás az új Büntető törvénykönyv rendszerében

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Készlet moduljának használatához

Kft. - tűzvédelmi tervezés, kiürítés szimuláció - info@flamella.hu tel.: (30) fax: (1) TARTALOMJEGYZÉK

Árajánlat. Feladó: Prokopp Iván Anteus Kft.

PENTA UNIO OKTATÁSI CENTRUM

Elektronikus ügyintézés Az Ügyfélkapu

PÁLYÁZATI FELHÍVÁS. XVI. kerületi családi házak energia-megtakarítást eredményező korszerűsítésének, felújításának támogatására

T Á J É K O Z T A T Ó

MELLÉKLET. Csatolmány. a következőhöz: Javaslat a Tanács határozata

Általános Szerződési és Felhasználási Feltételek

A munka- és pihenőidő nyilvántartása, munkaidő kedvezmények. 1 A munka-és pihenőidő nyilvántartása

Az Európai Gazdasági és Szociális Bizottság véleménye Tárgy: A szociális partnerek szerepe A hivatás, a család és a magánélet összeegyeztetése

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK (ÁSZF)

NYUGTALOTTO JÁTÉKSZABÁLYZAT

26/05/2010 S100 Tagállamok - Építési beruházás - Ajánlati felhívás - Nyílt eljárás. HU-Szolnok: Magasépítési munka 2010/S

FAVIS Group ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK

SZAKMAI PROGRAMJA

AZ ENERGIAUNIÓRA VONATKOZÓ CSOMAG A BIZOTTSÁG KÖZLEMÉNYE AZ EURÓPAI PARLAMENTNEK ÉS A TANÁCSNAK

DIÁKIGAZOLVÁNY. Felhasználói dokumentáció verzió 3.7. Budapest, 2015.

MEGÉRINT A TAVASZ! NYEREMÉNYJÁTÉK RÉSZVÉTELI ÉS JÁTÉKSZABÁLYZATA

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

Általános szerződési feltételek Üzletszabályzat

BMEEOUVAI01 segédlet a BME Építőmérnöki Kar hallgatói részére. Az építész- és az építőmérnök képzés szerkezeti és tartalmi fejlesztése

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK

MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés. Felhasználói kézikönyv

A.26. Hagyományos és korszerű tervezési eljárások

RENDÉSZETI és VAGYONVÉDELMI SZABÁLYZATA

ti1.us Hivatela É,rkez it : 2013 L05,

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK

Mellékletek: 1. Szakmai beszámoló és számlaösszesítő nyomtatvány


Részvételi- és játékszabályzat

Külső Határok Alap IGAZSÁGÜGYI ÉS RENDÉSZETI MINISZTÉRIUM KÜLSŐ HATÁROK ALAP PÁLYÁZATI ÚTMUTATÓ AZ IRM/EUTAMO/33-3/2008. SZ. PÁLYÁZATI FELHÍVÁSHOZ

Kockázatkezelési elvek, módszerek

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

ÁLTALÁNOS SZERZŐDÉSI ÉS FELHASZNÁLÁSI FELTÉTELEK

INFORMATIKAI SZABÁLYZAT

A Szécsény és Környéke Takarékszövetkezet ÁLTALÁNOS ÜZLETSZABÁLYZATA

ÉV VÉGI BESZÁMOLÓ TANÉV ÖMIP 6. SZ. MELLÉKLETE ALAPJÁN, A SZÜKSÉGES KIEGÉSZÍTÉSEKKEL

Iparművészeti Múzeum 1091 Budapest, Üllői út KÖZBESZERZÉSI DOKUMENTUM 2016/S Budapest, május

A KCM Kft. webáruházában történő vásárlás Általános Szerződési Feltételei (ÁSZF)

OKSZI Kft. Internet Szolgáltatására vonatkozó Általános Szerződési Feltételek KIVONATA

Balatonszárszó Nagyközség Önkormányzata. 5/2016. (IV.08.) önkormányzati rendelete a Központi Strand rendjéről és a strandi jegyárakról

Általános szerződési feltételek

Adatbázisok és adattárházak az információs rendszerek adatkezelői

V. Állami Számvevőszék. fejezet évi költségvetésének. végrehajtása

A köznevelési kerekasztal eddigi munkájának értékeléséről, kiemelt figyelemmel a béremelésekre (május 05.)

TÁJÉKOZTATÓ. az Állami Számvevőszék évi szakmai tevékenységéről és beszámoló az intézmény működéséről ÁLLAMI SZÁMVEVŐSZÉK.

Autó szerviz, csere pedelec

Átlépni vagy maradni? Nyugdíjdilemma Az összeállítást Fekete Emese készítette. Figyelı

Az építési műszaki ellenőr képzés a gyakorló szakemberek szemével

KÖZHASZNÚSÁGI JELENTÉS ÉV

Kollégiumpedagógiai szempontok a pedagógusképzésben

MRR Útmutató a Kockázat értékeléshez és az ellenőrzési tevékenységekhez

Közigazgatási szerződés

AZ OMMF MÁRCIUSI HÍRLEVELE. Külföldiek foglalkoztatása és munkavállalása a Magyar Köztársaság területén. a jogszabály - változások után

Alveolashop.com A ltala nos Szerzo de si e s Felhaszna la si felte telek

LELTÁROZÁSI SZABÁLYZAT 2016

Könyvelői Klub november 14. Debrecen. Konzultáns: Horváth Józsefné okleveles könyvvizsgáló-adószakértő, a Könyvelői Klub szakmai vezetője

A PÉTÁV Pécsi Távfűtő Kft. Üzletszabályzata júl. 1-től aug. 15-ig.

Általános Szerződési Feltételek

ÜZLETSZABÁLYZAT. ALFA-NOVA Energetikai, Fejlesztő, Tervező és Vállalkozó Korlátolt Felelősségű Társaság SZEKSZÁRD

GENDER BUDGETING (GB) A GYAKORLATBAN. Eredmények hozzáférhetık:

Fax: +36-1/ Internetcím(ek) (adott esetben) Az ajánlatkérı általános címe (URL): A felhasználói oldal címe (URL):

Egyetemi Számítóközpont

az új uniós vezetési- és pihenőidő szabályozás (561/2006/EK rendelet) és a vonatkozó ellenőrzési előírások kapcsán

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK INTERNETSZOLGÁLTATÁSRA. Szolgáltató: Station Net Kereskedelmi És Szolgáltató Kft.

FAPEDIT, megbízható teljesítménykiírás könnyedén T:

Látta: Mészáros Miklós Feikusné Horváth Erzsébet polgármester

Felhaszna ló i ú tmútató

Tisztelt Érdeklıdı, Olvasó!

DUNAÚJVÁROSI FŐISKOLA

Átírás:

Ábrahám Péter Gazdaságinformatika Levelező szak ESEVND Adatbázis háttér játszóházi beléptető és nyilvántartó rendszerhez Egy valós rendszer bemutatása "1

Tartalomjegyzék Bevezetés, feladat ismertetése Adatbázisok tervezése, kapcsolatok, jogosultságok MySQL Adatbázisok tervezése, kapcsolatok, jogosultságok Adatbázis kapcsolati ábra Végszó 3. oldal 4. oldal 4. oldal 5. oldal 9. oldal 10. oldal "2

Bevezetés, feladat ismertetése Jelen dolgozat témája, hogy bemutassam egy éles környezetben futó játszóházi beléptető és tagnyilvántartó rendszer adatbázisát és kapcsolatait. A program alapjait örököltem, vagyis egy másik fejlesztő kezdte el, kb 30%-os készültségi fokban szálltam be a projektbe, ezért előfordulhat, hogy egyes tábla/mező nevekben felfedezhető lesz a kétféle logika. Nem volt cél a korábbi, kész fejlesztéseket eldobni, befejezést és kiegészítést céloztam meg. A rendszer 2005-ben indult, én 2008-ban vettem át (mivel a kivitelező eltűnt), azóta három olyan fejlesztési fázison ment keresztül, ami a működést modernné, kényelmessé teszi. Első körben adódott, hogy fel kell mérni a jelen helyzetet. Az aktuális állapotban a kész funkciókat már használta az ügyfél, így szerencsére teszt adatokkal feltöltést nem kellett végezni. Egy komplex biztonsági mentést követően (sql dump és file backup) megkezdődött a munka. Ezt követően felvázoltunk egy rendszer működési modellt, mely kielégíti a következő igényeket: - teljesen operációs rendszer független (Windows/OSX/Linux/iOS/Android) és bárhonnan elérhető (online használat) - teljes elérés a kezelők és az adminok részére is (akár otthonról) - vonalkód leolvasó rendszer integráció (büfé eladás, karszalag kezelés) - rendezvény foglalás - játékok/gyerekek nyilvántartása, statisztika - büfé termékek eladása - további hiányzó funkciók pótlása, a meglévő funkciók hibáinak javítása "3

Adatbázisok tervezése, kapcsolatok, jogosultságok A rendszer üzemelésére az online működés miatt a PHP 5.x rendszert választottam, MySQL adatbázis kezelő programmal. Ez később könnyen migrálható másik serverre is akár. Kliens oldalon adatkezelésre minimális esetben kerül sor, így ott jquery dinamikus rendezhető táblázatok elegendőnek bizonyultak. A tábláknak az adatbázisban a jatszohaz_ előtagot adtuk, a könnyebb azonosíthatóság érdekében. Elsődleges cél a redundancia elkerülése. Redundancia alatt értjük, ha egy(több) adat azonos formában több helyen is szerepel, így ha ez az adat frissül, akkor minden előforduláson frissíteni kell, különben hibás működés jöhetne létre. Ez egyrészt káros, másrészt felesleges tárterület foglaláshoz vezet. Ennek megfelelően az adatbázisok kialakításánál törekedtünk arra, hogy minden táblában kizárólag a releváns adatok szerepelhessenek, és minden adatnak legyen egyedi IDje, ami alapján egy másik tábla releváns adatsorához kapcsolható. A kapcsolatok változatosak, általában 1-1 vagy 1-n alapúak. Az adatkapcsolatokat az MS Access segítségével fogom bemutatni, mivel MySQL-hez nem áll rendelkezésemre grafikus kapcsolatábrázoló kiegészítés. Másodlagos, de nem kisebb fontosságú, hogy egy táblában valóban csak azt az adatot tároljuk, ami az adott nézetben szükséges. Egyes táblák látszólag nem kapcsolódnak a rendszer maghoz, ezek beállítási adatok at tartalmazó táblák. Ezekben csak olyan alapadatok találhatók, amik önálló lekérdezések alapján adnak választ (percdíjak, termékek árai, stb). Ennek megfelelően 19 tábla készült a rendszerhez, melyek felépítését és működését a következő pontokban olvashatjuk. MySQL A MySQL kiváló választás osztott, többfelhasználós, interneten elérhető adatbázis építési célra. A GNU/GPL licenc alapján ingyenes, az Apache, IIS és NginX szerverek is kezelik, sok esetben alapértelmezett módon. Ennek köszönhetően rendkívül költséghatékony módon építhetünk belőle adatbázist. A motor maga jól kezeli a nagy méretű táblákat is, indexelhető, és rugalmasan bővíthető. Kezeli a TRIGGER és PROCEDURE eljárásokat is, VIEW is elérhető. (A jelen rendszerben ezen funkciók nincsenek kihasználva, de rendkívül hasznos funkciók). A lekérdezések gyorstárazhatók, így a hasonló lekérdezések cache-ből érkezve sokkal gyorsabban lefutnak, mint első alkalommal. "4

A program működése és az alaptáblák bemutatása A program célja, hogy a játszóházba beérkező gyermekek adatait letároljuk későbbi újrahasznosítás érdekében, valamint a benti történetüket kövessük. Értve ez alatt a játékok kezelését perc alapon, a játékok mentését későbbi statisztika generálásához, és a büfében történő fogyasztással is el tudjunk számolni. A büfé termékek leltárja is megoldott, valamint részletes napló és kassza áll rendelkezésre. A kassza zárása és a büfé standolása fileba kerül mentésre, így a tábla adott időponti állapota mindig elérhető csv file formátumban. A programmal akár a nagy alapterületű játszóházak igényei is kielégíthetők, de kiválóan alkalmazható kisebb egységekben is. A karszalagokkal egyszerre többféle beléptetés is követhető (sószoba, szülinapos játék, kísérőjegy, csoport jegy ) A felhasznált táblák: jatszohaz_alapdij: ebben a táblában tároljuk az alapdíjat. Az alapdíj annyit jelent, hogy fizetéskor ha az itt tárolt percek nem teltek el a belépés óta, ezt mindenképpen ki kell fizetni. Általában egy sor van tárolva, de azért került külön táblába, mert előfordulhat, hogy valakinek más napon más alapdíjra van szüksége jatszohaz_arak_1(2 és 3 azonos szerkezettel): ebben a három táblában különböző árakat tárolunk. Az arid mező szükséges a törlésekhez, sorba rendezéshez, az ardate mezőben pedig az adott ár érvényessége található. A 3 táblának oka, hogy három különféle ár-adat található bennük. Az elsőben a percdíjak találhatók, ardate 1-7 esetén a hét napjaira vonatkozó, illetve 20-ig speciális árak, ahol pedig élő dátum van beírva, ott az eredeti napi ár helyett alkalmazandó egyedi ár található (példa: gyermeknapra beállított 0Ft ár). A másodikban a rendezvények, teremfoglalások árai, hasonló módon, a harmadikban pedig különböző rendezvény speciális árak találhatók jatszohaz_berlettipusok: ebben a táblában tároljuk el az eladható bérletek tipusait, azok lejárati idejét, a benne foglalt percdíjakat, és az eladható státuszokat jatszohaz_berletek: ebben a táblában tároljuk el a gyerekek által megvásárolt bérleteket, azok vásárlási idejével és lejáratával együtt. A használat közben csökkenő perc-hátralék nyilvántartás is itt történik. "5

jatszohaz_foglalas: a tábla tartalmazza a lefoglalt rendezvényeket órás bontásban, termenként, gyermekenként. (példa: különterem foglalva az 1-es gyermekhez, 4 főre, és adott dátum/órára, több óra esetén óránként egy sor) jatszohaz_gyerekek: a tábla tartalmazza az összes gyerek személyes adatait (név, cím, telefonszám, születési idő, szülők adatai megjegyzésben) jatszohaz_hitelek: játék közben a büfében hitelre elfogyasztott termékek, melyeket ki kell fizetni a játék végén jatszohaz_hirlevel: a megírt hírlevelek archívuma (ismételt küldéshez minden hírlevelet letárolok archívumban) jatszohaz_jatekok: az egész rendszer szíve és lelke ez a tábla. A játék indításakor felírja a játék sorszámát, a gyermek sorszámát, a kezdés idejét, és hogy mely kezelő indította. Extra opció az együtt belépő gyermekek száma (jfo). Játék végén felírja a megállítás idejét (jstop), a játékidőt (magyarázat: időkedvezmény jár születésnap esetén, 2 óra után kezd számolni, agy a játékidő és a jstop-jstart időbélyeg érték nem biztos, hogy egyezik!), a státuszt átállítja fizetés alatti státuszra, fizetéskor pedig fizetett játék állapotra, és rögzíti a kapott kedvezményt (megjegyzés: a személyes kedvezményen felül kaphat valaki kedvezményt még) jatszohaz_karszalagok: a kiadott karszalagokat vonalkóddal lementi egy egy játékhoz kapcsolódóan. A játékok táblától külön kezelés oka, hogy minden alkalommal, mikor egy gyermek belép, ellenőrizni kell, hogy a vonalkódot valaha kiadták-e már játékra (nem érvényes) illetve a karszalag csomag tartományok közé tartozik-e a leolvasott kód. A keresés "6

a jatszohaz_jatekok táblában sokkal lassabb lenne, mint egy ilyen szűkre szabott táblában. És itt kizárólagos elsődleges kulcsként lehet jelen a vonalkód, ami tovább gyorsítja a lekérdezést. A játékok táblában vagy fulltext keresés kellene, vagy csak másodlagos kulcs lehetne. Én ezt választottam. jatszohaz_karszalag_csomagok: ebben a táblában tárolom az előbb említett karszalag csomagok (tömbök) kezdő és záró sorszámát, illetve a csomagok rögzítésének idejét. Ami vonalkód ezen tartományokon kívül esik, azzal nem lehet játékot indítani. jatszohaz_kassza: a kasszában tárolódik minden fizetési információ, a kassza zárásáig. A fizetéseket csoportosítja eladás szerint (mire) és fizetés szerint is (bankkártya, kp, utalvány). Mivel ide az összes fizetés bekerül, egy olvasható szöveg képében tárolom az eladási módot, nem hivatkozom más táblákra, ugyanis lehet büfé termék, játék fizetés, vagy épp rendezvény foglalás, vagy csak vezetői betét/kivét, így nem lehet optimálisan kapcsolni táblákhoz. A kapcsolódásokat lekéréskor a WHERE clause-ban adom meg, szöveg rész egyezéssel, it tagoló elemekként [ ] zárójeleket alkalmazva a szövegben elrejtem a kulcsokat. (ezt nem tudom a kapcsolati ábrán ábrázolni) jatszohaz_mail_cron: a táblába kerülnek mentésre a kiküldésre váró hírlevelek, és ahogy a cron job lefut, 200db-ot elküld, és töröl, ha sikeres. A végén kiürül a tábla, és várja a további hírleveleket. jatszohaz_naplo: minden eseményt rögzítek a naplóban. Belépések, játékok indítása, leállítása, fizetések, beállítás módosítások, stb. Így az események visszakövethetők, kontrollálhatók. jatszohaz_rendezvenyek: ebben a táblában a foglalásokhoz rögzíthető extra opciók, illetve csomagok adatai vannak letárolva. Egy rendezvény foglalás állhat óra/fő vagy csomag alapokon is. "7

jatszohaz_users: ebben a táblában találhatók a kezelők, adminisztrátorok belépési adatai, név, jelszó, rögzítés és utolsó belépés ideje. jatszohaz_bufe: a büfében kapható termékek táblája. Név, vonalkód, mennyiségi egység, mennyiség, gyártott termék esetén alapanyag lista, alaptermék esetén bekerülési ár. A táblák kapcsolati ábrája (eltávolítva azokat a táblákat, amik direkt módon nem kötődnek másik táblához) a következő oldalon tekinthető meg: "8

"9

Végszó Az előzőekben felvázolt rendszer a jelenlegi, véglegesnek tekinthető kialakítás. Természetesen a programozás alatt folyamatosan kellett apróbb módosításokat, kiegészítéseket felvinni az adatbázisba, de ez a jól megtervezett felépítésnek köszönhetően nem okozott problémát. Mivel az adatok megfelelően elszeparált táblákban tárolódnak, nincs redundancia, és csak a megfelelő ID-kel kötjük őket össze, így egy módosítást nem kell adatbázis szinten egynél több helyre felvezetni. 10 év elteltével a rendszer tartósan stabilnak bizonyult, melyet a benne tárolt adatok mennyisége is igazol (az adatok a fő felhasználási pont adatai, a program több játszóházban üzemel): Gyermekek száma: 8.450 fő Játékok száma: 20.582 játék Összes napló bejegyzés: 218.190 db "10