Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Tworzenie projektu - Elektroniczny dziennik szkolny, Konstrukcja bazy danych
filus08
post 23.05.2011, 20:14:54
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Witam!! To mój pierwszy post, proszę więc o wyrozumiałość, umieściłem post tutaj bo od nie dawna zacząłem przygodę z tematyką www, ale do rzeczy.
Mam do stworzenia elektroniczny dziennik szkolny. Na początek wystarczą 2 konta: rodzicielskie i nauczycielskie. Język jakie wybrałem to PHP, MySQL i HTML i CSS. Bazę chcę utworzyć w PHPmyADMIN, wszystko umieszczał na wirtualnym serwerze(XAMPP)
Zacząłem od stworzenia szkieletu bazy danych, prosiłbym o ocenę i ewentualne wskazówki. Prosiłbym też o jakieś wskazówki dotyczące utworzenia mechanizmu logowania bądź sesji. Otóż, żeby opiekun bo zalogowaniu automatycznie wchodził na swoje konto, żeby nie wlazł gdzie indziej( co w przypadku gdy opiekun ma kilka dzieci??)
Nauczyciel tak samo po zalogowaniu wchodził tylko na swoje konto (biorąc pod uwagę, np. że nauczyciel uczy 2 przedmioty, prowadzi jakieś tam koło zainteresowań po lekcjach i do tego jest wychowawcą jakieś tam klasy). Znalazłem na necie mechanizm na stronie: http://webcity.pl/webcity/wlasny_mechanizm_sesji_w_php
Ale on ma w sobie masę błędów i nie mogę z nim dojść do końca.

Co do samej bazy oto jej szkielet:
  1. UCZEN
  2. U_ID
  3. U_IMIE
  4. U_NAZWISKO
  5. U_PLEC
  6. U_DATA_URODZENIA
  7. U_PESEL
  8. U_LEG_ID (LEG_ID)
  9. U_NR_LEG_SZK
  10.  
  11. NAUCZYCIELE
  12. N_ID
  13. N_IMIE
  14. N_NAZWISKO
  15. N_PLEC
  16. N_PESEL
  17. N_NAZWA_DOK_TOZSAMOSCI (DT_ID)
  18. N_TYTUL_NAUKOWY (TN_ID)
  19. N_FUNKCJA (OF_ID)
  20. N_NR_TEL_STACJ
  21. N_NR_TEL_KOM
  22. N_EMAIL
  23.  
  24.  
  25.  
  26. OPIEKUNOWIE
  27. O_ID
  28. O_IMIE
  29. O_NAZWISKO
  30. O_PESEL
  31. O_NR_TEL_STAC
  32. O_NR_TEL_KOM
  33. O_EMAIL
  34. o_STATUS_PRAWNY (SP_ID)
  35.  
  36.  
  37. ADRESY
  38. AD_ID
  39. AD_OSOBY (U_ID,N_ID, O_ID)
  40. AD_ZAMELDOWANIA_KOD_POCZTOWY
  41. AD_ZAMELDOWANIA_MIEJSCOWOSC
  42. AD_ZAMELDOWANIA_ULICA_NAZWA
  43. AD_ZAMELDOWANIA_ULICA_NR
  44. AD_ZAMELDOWANIA_MIESZKANIE
  45. AD_ZAMIESZKANIA_KOD_POCZTOWY
  46. AD_ZAMIESZKANIA_MIEJSCOWOSC
  47. AD_ZAMIESZKANIA_ULICA_NAZWA
  48. AD_ZAMIESZKANIA_ULICA_NR
  49. AD_ZAMIESZKANIA_MIESZKANIE
  50.  
  51. POKREWIENSTWA
  52. P_O_ID (O_ID)
  53. P_U_ID (U_ID)
  54.  
  55. LEGITYMACJE_SZKOLNE
  56. LEG_ID
  57. LEG_NR_LEG_SZK
  58. LEG_NR_UCZEN(U_ID)
  59. LEG_UCZEN_KLASA (K_ID)
  60.  
  61. DOKUMENTY_TOZSAMOSCI
  62. DT_ID
  63. DT_NAZWA_NR
  64.  
  65. STATUSY_PRAWNE
  66. SP_ID
  67. SP_NAZWA
  68.  
  69. TYTULY_NAUKOWE
  70. TN_ID
  71. TN_NAZWA
  72.  
  73. OSOBY_FUNKCJE
  74. OF_ID
  75. OF_NAZWA
  76.  
  77. LATA _SZKOLNE
  78. LSZ_ID
  79. LSZ_ROK_NAZWA
  80. LSZ_SEMESTR_NAZWA
  81.  
  82. KLASY
  83. K_ID
  84. K_NUMER_KLASY
  85. K_NAZWA_KLASY
  86. K_ROK_SZKOLNY_SEMESTR (LSZ_ID)
  87. K_WYCHOWAWCA (N_ID)
  88. K_UCZEN (U_ID)
  89.  
  90. DZIENNIKI
  91. DZ_ID
  92. DZ_KLASA_UCZEN (K_ID)
  93. DZ_ROK_SZKOLNY_SEMESTR (LSZ_ID)
  94. DZ_PRZEDMIOT (P_ID)
  95. DZ_PRZEDMIOT_OCENA_WARTOSC (PO_ID)
  96. DZ_PRZEDMIOT_OCENA_OPIS (PO_OPIS_OCENY)
  97. DZ_PRZEDMIOT_OCENA_TYP (POT_ID)
  98. DZ_ZACHOWANIE_OCENA_WARTOSC (ZO_ID)
  99. DZ_ZACHOWANIE_OCENA_TYP (ZOT_ID)
  100.  
  101. PRZEDMIOTY
  102. P_ID
  103. P_NAZWA
  104. P_NAUCZYCIEL (N_ID)
  105.  
  106. PRZEDMIOTY_OCENY
  107. PO_ID
  108. PO_WARTOSC
  109. PO_OPIS_OCENY
  110.  
  111. PRZEDMIOTY_OCENY_TYPY
  112. POT_ID
  113. POT_NAZWA
  114.  
  115. ZACHOWANIE_OCENY
  116. ZO_ID
  117. ZO_WARTOSC
  118.  
  119. ZACHOWANIE_OCENY_TYPY
  120. ZOT_ID
  121. ZOT_NAZWA
  122.  
  123. PLAN_ZAJEC
  124. PZ_ID
  125. PZ_DZIEN_TYGODNIA
  126. PZ_PRZEDMIOT (P_ID)
  127. PZ_GODZINY_ZAJEC
  128. PZ_SEMESTR (LZS_SEMESTR_NAZWA)
  129. PZ_KLASA (K_ID)
  130.  
  131. GODZINY
  132. G_ID
  133. G_SYMBOL


Rozważałem również opcję ażeby nauczycieli, opiekunów i uczniów umieścić w jednej tabeli, ale wydaję mi się, że to by pogmatwało tylko cały wygląd bazy danych. Wychowawców umieściłem tabeli klasa. Jeszcze jeden problem mnie zatruwa, otóż czy silnik InnoDB będzie odpowiedni??
Go to the top of the page
+Quote Post
CuteOne
post 23.05.2011, 20:28:51
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


1. Mam nadzieję, że to projekt na uczelnie lub robisz to na własny użytek.. ?
2. Nie baza phpmyadmin tylko mysql
3. Na początek weź do ręki kartkę papieru i rozpisz sobie co ma się znaleźć w bazie danych. Następnie na nowej kartce połącz wszystkie te dane relacjami - to chyba najważniejsze

przykład:

problem - chcesz wyświetlić dane ucznia wraz z danymi rodziców
rozwiązanie - w tabeli opiekunowie musisz zawrzeć id ucznia, który jest ich dzieckiem lub połączyć obie tabele relacjami

Dobra rada... przed pisaniem w PHP rozpisz sobie wszystko na kartkach i trzymaj się tego do końca
Go to the top of the page
+Quote Post
filus08
post 23.05.2011, 20:49:53
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Nie wydaję ci się, że tabela pokrewieństwa którą utworzyłem lepiej połączy tabelę opiekunów z uczniami?? Czy jak umieszczę tak jak piszesz w tabeli opiekunów id_ucznia to co w przypadku gdy opiekun czy opiekunowie będą mieli kilkoro dzieci?? Też zapomniałem dopisać do tabeli pokrewieństwa pola id_nauczyciela bo przecież nauczyciel też może być jednocześnie opiekunem.
Jak oceniacie ogólny schemat bazy danych. Ja jeszcze dzisiaj sprubóję wklepać do wszystko połączyć relacjami, i wrzucę to na forum, pewnie wtedy będzie lepiej to widoczne.
Tak robię to tylko i wyłącznie na własny użytek, na uczelnie mam taki projekt wykonać. Chcę to zrobić bo od dawna planuje zbratać się z PHP, i temu podobnymi. Moją słabą stroną jest tworzenie baz danych, chociaż już miałem z nimi styczność.
Co odnośnie systemu logowania?? Gdzie znajdę ciekawe skrypty?
Bazę danych już mam rozpisaną i tak ja ją widzę. Tylko chciałem znać opinię ludzi bądź użytkowników tego forum którzy mają większe doświadczenie ode mnie.

Ten post edytował filus08 23.05.2011, 20:52:47
Go to the top of the page
+Quote Post
nekomata
post 23.05.2011, 23:00:17
Post #4





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


To zrób na odwrót ... w tabeli uczniów dodajesz id_opiekuna , w ten sposób rodzic może mieć wiele dzieci bez problemu .
Co do nauczyciel który jest rodzicem : przecież może znajdować się w dwóch bazach danych prawda?Osobny login jako rodzic , osobny jako nauczyciel - problem solved . Albo jedno konto i osobne podstrony dla nauczycieli i rodziców : link pojawią się zależnie od statusu..

System logowania?Masz taką zaawansowaną bazę danych to na pewno coś możesz skrobnąć samemu . Jak masz z tym problem to jak masz zamiar napisać dodawanie / sprawdzanie ocen itd ?
Go to the top of the page
+Quote Post
filus08
post 24.05.2011, 00:10:05
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Ale czy moje rozwiązanie z tabelą polrewieństwo jest złe??


Wiesz no bede miał problem, dlatego jestem w dziale przedszkole, może dzięki waszym sugestiom uda mi się coś stworzyć
Go to the top of the page
+Quote Post
nekomata
post 24.05.2011, 02:11:23
Post #6





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


Dobrego słowa użyłeś sugestia . Jest dokładnie jak mówisz.. możemy Ci sugerować różne rzeczy , podawać argumenty , podpowiadać . Ostateczna decyzja jednak należy do Ciebie .
Jeśli piszesz takie dziennik dobrze by było rozumieć działanie własnego projektu prawda?Dzięki temu możesz łatwo dodawać opcję , jednak jeśli liczysz że poprowadzimy Cię za rękę przez cały projekt (w co wątpię bo już całą bazę sobie rozpisałeś i odwaliłeś kawał roboty ) to się mylisz .
Zaleciłem 'skrobnięcie' logowania samemu , ponieważ źle jest 'pisać' projekt typu kopiuj&wklej bo wtedy sam nie wiesz co robisz .
W internecie jest pełno poradników / książek (jak znasz angielski to tym lepiej ponieważ dużo więcej źródeł i tutoriali znajdziesz . ).

Co do 'pokrewieństw' mhmmm.. myślę że to niepotrzebna tabela ... bo trzymasz tylko ID ucznia i ID rodzica . Kolumna z ID rodzica w tabeli uczniów jest efektywniejsza i prostsza w użyciu według mnie.
Go to the top of the page
+Quote Post
celbarowicz
post 24.05.2011, 08:36:47
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Te dzienniki elektroniczne to straszna rzecz. Mam koleżankę pracującą w szkole. Normalne sprawdzenie obecności zajmuje kilka minut. Wpisanie oceny do dziennika to też czas. Jeśli trzeba ocenę wpisać do dziennika elektronicznego to ... no własnie co? Należy oceny gdzieś na jakiejś kartce zanotować , aby nie wymieszały się z wcześniej wpisanymi, następnie ktoś musi je wprowadzić do kompa. Pytanie kto?(uczyciel?) To jest dublowanie roboty. Rodzice zamiast spotkać się z wychowawcą lub nauczycielem przedmiotu unikają szkoły.
Twój dziennik jako wprawka w programowaniu to niezła rzecz. Z punktu widzenia nauczyciela to strasznie upierdliwy wynalazek.
PS: W jednej ze znanych mi szkół są specjalne jednorazowe karty wypełniane na lekcji. Po lekcjach zdawane są do sekretariatu i tam ręcznie( a miało być czytnikiem)wprowadzane do kompa. KARTKA TAKA KOSZTUJE. Są niezłe cyrki, bo oceny często nie zgadzają się.
A miał być lepiej.
Go to the top of the page
+Quote Post
nekomata
post 24.05.2011, 08:54:55
Post #8





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

Ostrzeżenie: (0%)
-----


Elektroniczny dziennik nie byłby takim upierdliwym rozwiązaniem dla nauczyciela jeśli byłby użyty zamiast normalnego dziennika a nie razem z nim .
Ale takie rzeczy tylko w Erze .

Ten post edytował nekomata 24.05.2011, 08:55:30
Go to the top of the page
+Quote Post
boro11
post 24.05.2011, 14:41:10
Post #9





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


U mnie w szkole jest tylko dziennik elektroniczny i sprawuję się bardzo doskonale. Powodzenia w projekcie smile.gif
Go to the top of the page
+Quote Post
filus08
post 24.05.2011, 21:24:45
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Jedna rzecz mnie nurtuje i może mi to wytłumaczycie. Jeżeli mam utworzoną tablę nauczyciele i drugą przedmioty, i jak w tabeli nauczyciele dodam rekord id_przedmiotu to jak potem to uzupełnić w tabeli w przypadku gdy nauczyciel uczy wiięcej niż jeden przedmiot?albo na odwrót: jeśli w tabeli przedmioty umieszczę id_nauczyciela to co w przypadku gdy jednego przedmiotu uczy więcej niż jeden nauczyciel? Jak to rozwiązać? Piszę w MySQL w programie PHPmyAdmin.

Kolejna rzecz: rekord płeć, czy w PHPmyAdmin można zrobić coś w rodzaju rozwijanej listy, żeby wybrać czy to kobieta czy gościu?

Czy ktoś może mi to wytłumaczyć ? szukam na necie ale nie mogę znaleźć.

Ten post edytował filus08 24.05.2011, 20:25:05
Go to the top of the page
+Quote Post
mat-bi
post 24.05.2011, 21:29:14
Post #11





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Co do pierwszego - osobna tabelka powinna być do tego dobra.

A co do płci - przy tym wpisujesz 1 i 2, np. 1 - męż, 2 - kob.
Go to the top of the page
+Quote Post
filus08
post 24.05.2011, 21:34:47
Post #12





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Cytat(mat-bi @ 24.05.2011, 22:29:14 ) *
Co do pierwszego - osobna tabelka powinna być do tego dobra.

Tabelka tzn. questionmark.gif

przedmioty
id_przedmiot
id_nauczyciel

o to ci chodzi?

A co do płci - przy tym wpisujesz 1 i 2, np. 1 - męż, 2 - kob.


Tu tez osobna tabelka

plec

i potem tylko id_plec ?

to masz na mysli?

I jeszcze jedno. Jak to potem połączyć relacją,ażeby np. w tabeli uczeń gdzie będzie rekord id_plec, mógł sobie wybierać 1 czy 2 opcjęquestionmark.gif
Go to the top of the page
+Quote Post
mat-bi
post 24.05.2011, 21:39:00
Post #13





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Nieee, do płci nie trzeba osobnej tabelki, to byłoby co najmniej dzikie wink.gif

Co do drugiego:

  1. <select name="gender">
  2. <option value="1">Mężczyzna</option>
  3. <option value="2">Kobieta</option>


Potem tylko obsługujesz
Go to the top of the page
+Quote Post
celbarowicz
post 24.05.2011, 21:39:47
Post #14





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Miotasz się i o to chodzi.Masz więc zamiar zrozumieć problem. Jest coś takiego jak arkusz organizacyjny szkoły-np Vulkan.
Najpierw ustal listę przedmiotów nauczanych w w szkole(id,nazwa przedmiotu).
Lista klas(id, klasa-czyli grupa uczniów -nie gabinet)
program nauczania w klasie(id_p,id_klasy,id_przedmiotu)
//----------------------------
lista nauczycieli (id,nazwisko, itd..ORAZ unikalny skrót z imienia i nazwiska)
nauczyciel uczy (id,id_nauczyciela,id przedmiotu)

przydziały(id,id_p, id_nauczyciela)

Wprowadzasz dane od góry.......

Wyszukiwanie w zależności od potrzeb. NP: Bierzesz nauczyciela o id=5; W tabeli przydziały otrzymasz wszystkie id_p->na ich podstawie w tabeli program nauczania uzyskasz ifo jakich przedmiotów i w jakich klasach nauczyciel naucza(a w zasadzie otrzymasz ich idy)
Być może gdzieś popełniłem błąd, ale tak bym podszedł do sprawy. Ktoś już napisał -rozrysuj i znormalizuj bazę.
POWODZENIA.
Go to the top of the page
+Quote Post
filus08
post 24.05.2011, 21:48:33
Post #15





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


celbarowicz z tego co piszesz to ja mojej bazie podanej u góry jest tylko brakuje mi ewentualnej tabeli przydziały, dzięki za news, właśnie piję kawę bo przede mną długa romantyczna noc z mysql oneeyedsmiley02.png nerdsmiley.png to to rozważę co napisałeś.
Go to the top of the page
+Quote Post
celbarowicz
post 24.05.2011, 22:29:35
Post #16





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Chyba przesadziłem. Jeśli tabelę program nauczania ,rozszerzyć o pole id_nauczyciala to zbędna będzie tabela przydziały.
Go to the top of the page
+Quote Post
filus08
post 24.05.2011, 23:03:39
Post #17





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Tak ale nadal zostaję ci wtedy mój wcześniej napisany problem dobrego rozpisania przedmiotów , wiesz ja jednak rozbiję to i dołożę tabelę o nazwie tak jak podałeś poprzednio np. przydziały i tam będzie id_przedmiotu i id_nauczyciela, podobnie jak w szkielecie połączyłem tabele opiekun i uczeń tabelą pokrewieństwa. W tabeli nie program_nauczania nie umieścisz id_nauczyciela, bo nie zawsze jeden program realizuję jeden nauczyciel, moze być ich kilku, czyż nie?? Ale program nauczania zostawmy na potem. Najpierw trzon bazy potem ewentualnie coś się dołoży.
Co ty na to? Wydaje mi się, że tak będzie najrozsądniej.

Ten post edytował filus08 24.05.2011, 23:13:37
Go to the top of the page
+Quote Post
celbarowicz
post 25.05.2011, 07:35:00
Post #18





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Przydziały będą powielały tylko tabelę programy nauczania- a to jest zbędne(miejsce w bazie , oraz wypełnianie tabeli).

Ten post edytował celbarowicz 25.05.2011, 07:36:04
Go to the top of the page
+Quote Post
filus08
post 25.05.2011, 11:39:07
Post #19





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.05.2011

Ostrzeżenie: (0%)
-----


Teraz mam inny kłopot. Otóż



Jak połączyć 2 klucze główne, tz. id_opiekun i id_nauczyciel do tabeli pokrewieństwa pokr_osoba, jakiej relacji użyć? Jest to możliwe??
Może jakieś argumenty trzeba ustawić, szukam ale nic nie mogę znaleźć
Czy w tabeli pokrewieństwa dodać jeszcze rekord pokr_osoba_2 i tam dać id_opiekuna??

Ten post edytował filus08 25.05.2011, 12:23:51
Go to the top of the page
+Quote Post
CuteOne
post 25.05.2011, 15:05:37
Post #20





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


filus8: nie łączysz ich bo i po co ;] pamiętaj, że nie wszystko musi być ze sobą połączone [a łączenie nauczyciela z opiekunem to chyba jakaś pomyłka?] - większość otrzymasz tworząc odp. zapytania


ps. jak chcesz projektować bazy danych polecam fajny programik MySQL Workbench 5.2 CE

Ten post edytował CuteOne 25.05.2011, 15:07:11
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.05.2025 - 05:18