
Një projekt API për rezervimin e biletave shqyrton sfidën e kërkesave të njëkohshme për një sasi të kufizuar biletash. Pas një aplikacioni për shkurtimin e URL-ve, autori zgjodhi të thellonte njohuritë për bazat e të dhënave, duke përdorur Postgres në një kontejner lokal Docker dhe TypeORM për lidhjen e kodit me tabelat.
Skema përmban gjashtë tabela: tri për ngjarjet, llojet e biletave dhe rezervimet, si dhe tri për administratorët, sesionet dhe listën e bllokimit të tokenëve. Ndarja e llojeve të biletave në tabelë më vete lejon që një ngjarje të ketë kategori me çmime dhe sasi të ndryshme. Rezervimet përfshijnë edhe afatin e skadimit të mbajtjes së përkohshme.
Çelësat primarë e të huaj dhe kufizimet në bazën e të dhënave mbrojnë integritetin e informacionit. Rregullat CHECK kërkojnë sasi pozitive dhe pranojnë vetëm statuset held, confirmed, cancelled ose expired. ON DELETE CASCADE dhe ON DELETE RESTRICT përcaktojnë pasojat e fshirjes së të dhënave të lidhura.
Për sesionet administrative ruhet hash-i i refresh token, jo vetë token-i, ndërsa tokenët e daljes nga llogaria mund të bllokohen para skadimit. Teksti trajton edhe indekset, që ndihmojnë gjetjen e rreshtave pa skanuar gjithë tabelën. Kodi burimor: github.com/Ango-Jay/ticket-reservation-app.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

