Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 36 Dołączył: 31.03.2006 Skąd: Zielona Góra Ostrzeżenie: (0%)
|
Witam.
Zastanawiam się nad sposobem przechowywania ocen w internetowym dzienniczku ucznia. Przechowywanie każdej oceny w oddzielnym rekordzie przy założeniu, że z aplikacji korzystać będzie ok 1000 szkół, jest dość problematyczne. Myślałem o podziale ocen na kolumny (z różnymi wagami - potrzebne do średnich warzonych). W każdej "kolumnie" 10 ocen. Kolumna przypisana byłaby do danego przedmiotu (w danym przedmiocie max 4 może 5 kolumn co daje ok 40, 50 ocen z przedmiotu). Każdy rekord zawiera informację o przedmiocie, uczniu, wadze oraz 10 ocen. Z ilością rekordów schodzimy 10-krotnie Co wy na to? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 18.07.2008 Ostrzeżenie: (0%)
|
Co do liczby rekordów. Zakładając 1000 szkół x 500 uczniów x 10 przedmiotów x 15 ocen daje nie małą sumę 75 000 000 rekordów. nie zgodziłbym się z tym, uczeń ma średnio w ciągu roku ok 200 ocen łącznie ze wszystkich przedmiotów (przynajmniej tak wychodzi z mojego doświadczenia), ale może być też więcej. A jak oceny są przechowywane np. 3 lata to masz dodatkowy problem 1000 szkół x 500 uczniów x 200 ocen x 3 lata = 300 000 000 Z moich testów wynikało że tabela przechowująca oceny przy 5 mln rekordów miała (przy założonych indeksach), ok. 500mb Bez indeksów wyszukiwanie ocen ucznia trwało 30-50s, z indeksami ok 0.03s, a jak wynik był cachowany to jeszcze krócej (IMG:style_emoticons/default/smile.gif) Ale mniejsza z ocenami, prawdziwa zabawa to się zaczyna przy nieobecnościach (IMG:style_emoticons/default/smile.gif) 1000 szkół x 500 uczniów x 1800 godzin lekcyjnych w roku x 3 lata = 2 700 000 000 Jednak jak się pokombinuje to można by zmniejszyć ilość rekordów przy frekwencji o 80% Ten post edytował modic 13.06.2011, 18:35:59 |
|
|
|
Post
#3
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Ale mniejsza z ocenami, prawdziwa zabawa to się zaczyna przy nieobecnościach (IMG:style_emoticons/default/smile.gif) 1000 szkół x 500 uczniów x 1800 godzin lekcyjnych w roku x 3 lata = 2 700 000 000 Jednak jak się pokombinuje to można by zmniejszyć ilość rekordów przy frekwencji o 80% I to wg. Ciebie jest dużo? Primo: Przechowujesz nieobecności, a nie obecności. To zmniejsza ilość danych o 90% Secundo: Jeden z naszych systemów ma po roku działania 6 922 096 rekordów w jednej tylko tabeli - i jakoś nikt z tego powodu nie załamuje rąk. Inny system, który jest dość intensywnie używany ma bazę wielkości 6 325 MB - z indeksami i całą resztą. I też nie ma problemów z działaniem. Odpowiedni projekt i optymalizacja bazy i nie ma problemu. |
|
|
|
woj_tas Struktura bazy danych - internetowy dzienniczek ucznia 26.05.2009, 12:01:10
scanner A dlaczego obawiasz się liczby rekordów?
Tak z ma... 26.05.2009, 13:32:51
woj_tas Do tabeli łączącej musiałbym zapisać jeszcze idKol... 26.05.2009, 13:54:15
scanner http://www.postgresql.org/about/
CytatMaximum Data... 26.05.2009, 14:25:29
woj_tas Witam
Przedstawiam strukturę bazy danych
R... 27.05.2009, 08:00:16
guciol Witam jestem nowy więc proszę o wyrozumiałość. Sch... 28.04.2011, 12:07:31 
Sephirus Cytat(scanner @ 20.06.2011, 17:03:33 ... 30.06.2011, 07:24:10
#luq Cytat(scanner @ 26.05.2009, 14:32:51 ... 20.06.2011, 20:46:26 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 11:42 |