• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Projekt własny bazy danych - prośba o opinie i rady

VPS Starter Arubacloud
0 głosów
1,711 wizyt
pytanie zadane 24 grudnia 2016 w Nasze projekty przez K_Padawan Nowicjusz (150 p.)

Cześć :D
Tworzę aplikację internetową do zarządzania klubem fitness, która ma zawierać w sobie m.in. system rezerwacji na zajęcia. Zaprojektowałam bazę danych i chcę Was zapytać o opinię i rady.Umieszczam tylko fragment bazy odpowiadający za rezerwacje.

 

Mam 6 tabel: classes -  to są typy zajęć jakie klub ma w ofercie, specific_classes -  to już są konkretne zajęcia wpisane do grafiku z ustaloną datą i trenerem który je poprowadzi, reservations - ta tabela zawiera id_usera, id konkretnych zajęć i kolumnę o typie bool w której chcę zaznaczać czy użytkownik pojawił się na zarezerwowanych zajęciach. A reserve_list to są rezerwacje rezerwowe. Tabela users została wygenerowana automatycznie z pakietu Sentinel.

Co sądzicie o tym projekcie? Co byście zmienili? Czekam na Wasze opinie.

Z góry Wszystkim dziękuję :D

 

1 odpowiedź

+3 głosów
odpowiedź 24 grudnia 2016 przez Boshi VIP (100,240 p.)
wybrane 25 grudnia 2016 przez K_Padawan
 
Najlepsza
trenerzy do wywalenia, po co ci oni? czym się różnią od userów? przecież to można na podstawie roli wyróżniać.

classess to są typy zajęć? czyli co?  fitness, crossfit tak? jeżeli tak to nazwij to kategorie i dodaj parent_id dla zagnieżdżeń.

W specific classes bez sesnu data i start.  Na jakiej podstawie rozróżniasz ile trwają zajęcia skoro się zaczynają np o 11?

daj start i end  jakos dateTime, wtedy podajesz pełną datę z godziną rozpoczęcia i końca zajęć.

rezerwacja wypadało by, żeby miałą datę.

 

rezerwacje rezerwacji nie wiem do czego ci to.

 

W czym to piszesz?
komentarz 25 grudnia 2016 przez K_Padawan Nowicjusz (150 p.)
Trenerów nie miałam zamiaru traktować jako userów. Chciałam żeby byli zwykłymi obiektami jak classes, ale jednak dorobię rolę trener i zamienie ich na userów.
classes to typy zajęć czyli crossfit itp. I tutaj nie rozumiem po co dodawać parent_id i o co chodzi z zagniezdzeniami.

Co do specific_classes: w tabeli classes mam kolumnę duration, która ma zawierać czas trwania zajęć, ale to w sumie zmienię i dodam end w tabeli specific_classes. genralnie założenie było takie ze pracownicy klubu mogą dodawać typy zajęć i dodawać do grafiku już jakieś konkretne zajęcia z określoną datą, godziną rozpoczęcia  i trenerem. Zmodyfikuję to jednak tak żeby mogli tez przy dodawaniu konkretnych zajęć określić czas ich trwania zamiast przy dodawaniu typu zajęć.
I nie dawałam daty przy rezerwacjach bo założyłam, że zarezerwować można tylko konkretne zajęcia które mają już ustaloną datę.

A rezerwacje rezerwacji to miały być rezerwacje rezerwowe, wymyśliłam że gdy braknie miejsc na jakieś konkretne zajęcia to wtedy klienci będą mogli zapisywać się na listy rezerwowe, żeby np po zwolnieniu się miejsca na te zajęcia wysłać osobom z listy rezerwowej mejla z tą informacją.

Piszę to w PHP i Laravelu.
komentarz 25 grudnia 2016 przez Boshi VIP (100,240 p.)
Parent po to, byś mogła np zagnieżdżać kategorie sobie. Jeżeli nie przewidujesz nie musisz, ale możesz mieć np

Trening siłowy->corssFitness i w tym wypadku kategorią nadrzędną jest trening siłowy a pod nią podlegają wszystkie treningi siłowe.

Rezerwacje rezerwacji teraz ma jakiś sens, ale z punktu widzenia logiki musisz informować o tym użytkowników jakimś mailem.

 

Ogólnie to piszę identyczny system w Symfony i założenia mam takie jak podałem wyżej.Nie musisz się zgadzać, ale wydaje mi się, że np tworzenie na bieżąco danych do danych zajęć (jaki trener, ilość miejsc itd) jest praktyczniejsze niż używanie wcześniej przygotowanych szablonów. No chyba, że jesteś pewna, że zawsze będą to te same zajęcia (trochę niepraktyczne)
.

p.s pamiętaj o możliwości skopiowania grafiku na kolejny miesiąc. (Kopiujesz wszystkie zajęcia z przesunięciem o wybraną ilosc dni.)
komentarz 25 grudnia 2016 przez K_Padawan Nowicjusz (150 p.)
z prentami to rzeczywiście dobry pomysł, wykorzystam go.
I czas trwania z classes też przeniosę do specific_classes, masz rację będzie to praktyczniejsze.

Nie pomyślałam o tym kopiowaniu, jeszcze nie wiem jak to zrealizuję ale jakoś na pewno :D, Podobną funkcjonalność zrealizowałam w ten sposób ze pracownik dodając jakieś zajęcia do grafiku może dodać jednocześnie kilka zajęć. Np. dodając jakieś zajęcia do grafiku może wybrać opcję zajęć cyklicznych i wtedy wybiera sobie jeszcze co ile dni mają się one odbyć i datę końcową, i w pętli wykonuję wstawienie do bazy danych. W sumie fajnie by było jeszcze dać im możliwość dodawania konkretnych zajęć np w każdy poniedziałek wtorek i środę.

Dzięki za odzew :D
komentarz 25 grudnia 2016 przez Boshi VIP (100,240 p.)
Jak masz cykliczne to też jakieś rozwiązanie. Też o tym myślałem.
 a kopiowanie grafiku, to po prostu jakaś metoda modyfikująca czas. Pobierasz np wszystkie  zajęcia z danego miesiąca, w pętli modyfikujesz każdej czas o np kolejny miesiąc/tydzień czy jak tam sobie okreslisz (DateTime) i przepisujesz do bazy.

Nie wiem jak masz zorganizowane zajęcia, czy to po przez zwykły formularz czy jakiś kalendarz, ale ja zintegrowałem https://fullcalendar.io/ i po prostu klikam sobie wybrany dzień,  otwieram okno modalne z formularzem, zapisuje i tyle.

Podobne pytania

+1 głos
2 odpowiedzi 1,695 wizyt
0 głosów
0 odpowiedzi 195 wizyt
pytanie zadane 20 grudnia 2016 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 3,044 wizyt
pytanie zadane 24 stycznia 2017 w SQL, bazy danych przez trus Nowicjusz (120 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...