Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziennik internetowy
Forum PHP.pl > Forum > PHP
Cliassi
Witam, mam problem z strukturą bazy danych. Mam tabele: szkoły klasy studenci. Chąc stworzyć system wyświetlający oceny wszystkich studentów lepiej jest robić oddzielna tabelke dla klasy czy wszystko w jednej trzymać i dać pole "id klasy" ?
spokoloko123
Odpowiednio zrobione osobne tabelę zapewniają większą elastyczność.
Cliassi
a co do szybkości ?
PanGuzol
Tworzenie nowej tabeli dla każdej nowej klasy to raczej złe rozwiązanie. Z czasem jak będziesz miał kilka tysięcy klas i tym samym kilka tysięcy tabel to będzie bardzo trudne i powolne jak będziesz chciał policzyć statystykę lub cokolwiek bazując na wszystkich danych. Standardowa relacja jeden do wielu powinna być najlepszym rozwiązaniem.
Cliassi
czyli lepiej mieć to wszystko w jednej tabeli ?
PanGuzol
Tak
spokoloko123
Cytat(Cliassi @ 17.11.2012, 19:23:52 ) *
czyli lepiej mieć to wszystko w jednej tabeli ?

Żeby nie było nieporozumień w trzech tabelach wink.gif Trudno o receptę na bazę danych. To co napisałeś na początku "szkoły klasy studenci" jest najprostsze, a proste rozwiązania zazwyczaj sprawdzają się najlepiej. Zastanawia mnie tylko czy dla klas jest sens tworzenia osobnej tabeli bo zazwyczaj klasę opisujemy od dwóch do trzech znaków np. 1A, 3Az
CuteOne
+ co najmniej 2 tabele na relacje - jeden student, może być zapisany do X kirunków w X uczelniach
thek
Jak dla mnie najprostszym podejściem będzie wersja z podziałem podobnym do:

Uczeń: id, nazwisko, imię
Szkoła: id, nazwa
Klasa: id, id_szkoły, nazwa
Przedmiot: id, nazwa

Klasa_rocznika: id, id_klasy, rok
Ocena: id_ucznia, id_klasy_rocznika, id_przedmiotu, ocena

Oczywiście można rozbijać na wiele innych relacji, ale ten sposób w jednym miejscu gromadzi wszystkie konieczne dane. Ocena wskazuje na ucznia i przedmiot, a dodatkowo określoną klasę. Dla takiego podejścia wydzieliłem jeszcze rocznik klasy. Dzięki temu dochodzi kilka możliwości przy wyłuskiwaniu danych, bez zbytniego rozbicia na malutkie klasy. Oczywiście to tylko jedna z wielu możliwości podejścia. Wiele zależy od tego, na co kładziesz nacisk.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.