ďťż
 
prośba o pomoc w modelowaniu (dłuższe) ďťż
 
prośba o pomoc w modelowaniu (dłuższe)
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

prośba o pomoc w modelowaniu (dłuższe)



geos - 02-08-2006 00:48
prośba o pomoc w modelowaniu (dłuższe)
  witam,

proszę o pomoc w koncepcyjnym modelu poniższego scenariusza. dopiero
zaczynam przygodę z bazami danych i pełne ogarnięcie zależności sprawia
mi trudność.

jest sobie strona www, na której użytkownicy mogą rozwiązywać testy.
każdy test składa się z pytań i odpowiedzi. odpowiedzi są punktowane.

na przykład:
pytanie 3. w tęczy kolor pomarańczowy leży najbliżej koloru:
[ ] czerwonego (1 pkt)
[ ] żółtego (1 pkt)
[ ] niebieskiego (0.25 pkt)

punkty za odpowiedzi w testach mogą być zmieniane przez administratora
raz na miesiąc. administrator może również dodawać nowe testy oraz
usuwać istniejące. liczba punktów za cały test jest funkcją punktów za
poszczególne pytania (administrator może zmieniać tę funkcję).

wynik każdego testu jest zapisywany na koncie uzytkownika. administrator
ma dostęp do tych wyników wraz z aktualnymi w chwili rozwiązywania
punktami za poszczególne odpowiedzi. może więc być sytuacja, że w
rozwiązując konkretny test identycznie użytkownik uzyska inną liczbę
punktów za pytanie ze względu na zmianę przypisania punktów do
poszczególnych odpowiedzi lub funkcji zliczającej punkty za cały test.

i tu mam problem. czy moglibyście mi podpowiedzieć jak dobrze modelować
taką sytuację, w której należy:
a) pamiętać wartości pytań/odpowiedzi/punktów w chwili rozwiązywania testu
b) można łatwo wprowadzać zmiany w punktowaniu w obrębie jednego testu
c) można udostępniać nowe testy/blokować stare, ale informacja o starych
(tj. pytania, odpowiedzi i punkty) nie może "zniknąć" z historii konta
użytkownika

na razie wymyśliłem, że jako TEST będę traktował parametryzowany
punktami zbiór ustalonych pytań i odpowiedzi. to znaczy, jeśli zmienią
się tylko punkty za odpowiedzi/funkcja zliczająca to będzie to ten sam
test. jeśli natomiast zmianie ulegnie pytanie lub liczba odpowiedzi do
niego to będzie to już inny rodzaj testu.

będę wdzięczny za pomoc jak i czy możliwe jest modelowanie powyższego
scenariusza. w jaki sposób projektuje się bazy danych, w których trzeba
przechowywać informację o starych i aktualnych parametrach? jako
analogia przychodzi mi do głowy informacja o zmiennym oprocentowaniu
lokaty w banku, ale może źle podchodzę do problemu? może należy go
rozbić na inne zagadnienia? może znacie jakiś diagram ER, w którym
uwzględniona jest podobna funkcjonalność? dopiero zaczynam przygodę z
bazami danych i każda uwaga pomocna w zrozumieniu zależności w powyższym
scenariuszu, jego rozwiązania i implementacji w bazie postgresql będzie
dla mnie cenna.

dziękuję i pozdrawiam,
geos





Sławomir Szyszło - 02-08-2006 00:48

  Dnia Mon, 31 Jul 2006 20:51:44 +0200, geos <geos@nowhere.org.invalid>
wklepał(-a):

>witam,
>
>proszę o pomoc w koncepcyjnym modelu poniższego scenariusza. dopiero
>zaczynam przygodę z bazami danych i pełne ogarnięcie zależności sprawia
>mi trudność.
>
>jest sobie strona www, na której użytkownicy mogą rozwiązywać testy.
>każdy test składa się z pytań i odpowiedzi. odpowiedzi są punktowane.
>
>na przykład:
>pytanie 3. w tęczy kolor pomarańczowy leży najbliżej koloru:
>[ ] czerwonego (1 pkt)
>[ ] żółtego (1 pkt)
>[ ] niebieskiego (0.25 pkt)
>
>punkty za odpowiedzi w testach mogą być zmieniane przez administratora
>raz na miesiąc. administrator może również dodawać nowe testy oraz
>usuwać istniejące. liczba punktów za cały test jest funkcją punktów za
>poszczególne pytania (administrator może zmieniać tę funkcję).

Wprowadź daty obowiązywania testu (zestawu pytań, odpowiedzi i punktacji) oraz
status Aktywne/Wygasłe (ewentualnie jeszcze status "prototyp" - dla testów "w
produkcji"). Przy wyszukiwaniu testu szukasz takich, gdzie data bieżąca jest w
zakresie <data_od, data_do> testu i status jest Aktywny. Daty testów aktywnych
muszą być oczywiście rozłączne - aplikacja musi tego pilnować.
Testów aktywnych nie można modyfikować, można tylko utworzyć kopię.

Przy wynikach testu dla danego użytkownika trzymasz tylko ID zestawu testowego i
nic ponadto - historię zmian masz zachowaną, więc nie musisz przy każdym wyniku
trzymać informacji jaka była punktacja.
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych




geos - 02-08-2006 00:49

  Sławomir Szyszło wrote:
> Wprowadź daty obowiązywania testu (zestawu pytań, odpowiedzi i punktacji) oraz
> status Aktywne/Wygasłe (ewentualnie jeszcze status "prototyp" - dla testów "w
> produkcji"). Przy wyszukiwaniu testu szukasz takich, gdzie data bieżąca jest w
> zakresie <data_od, data_do> testu i status jest Aktywny. Daty testów aktywnych
> muszą być oczywiście rozłączne - aplikacja musi tego pilnować.
> Testów aktywnych nie można modyfikować, można tylko utworzyć kopię.
>
> Przy wynikach testu dla danego użytkownika trzymasz tylko ID zestawu testowego i
> nic ponadto - historię zmian masz zachowaną, więc nie musisz przy każdym wyniku
> trzymać informacji jaka była punktacja.

dziękuję za odpowiedź. przemyślę i odezwę się jeszcze.

pozdrawiam,
geos
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= Import za =?ISO-8859-2?Q?pomoc=B1_EMS_Data_Import_for_?==?ISO-8859-2?Q?MySQL_-_polskie_litery=2E?= =?iso-8859-2?q?Przentacja,_probelm=2E_Prosz=EA_o_pomoc=2E?= =?iso-8859-2?q?Panie_i_Panowie-prosz=EA_o_pomoc_ze_skanerem=2E_ARCUS_II=2ECUDA?= =?iso-8859-2?q?[apache]_restart_za_pomoc=B1_cron'a_i_too_many_open_files? = [MSSQL] Wykonanie DTS za =?ISO-8859-2?Q?pomoc=B1_triggera?= [Oracle] =?ISO-8859-2?Q?Pro=B6ba_o_pomoc_przy_zapytaniu?= =?ISO-8859-2?Q?pro=B6ba_o_pomoc_w_wyborze_sprz=EAtu?= [MySQL] Proszę o pomoc w utworzeniu zapytania do dwóch tabel. [MySQL] group by i dodatkowe warunki. Pomoc przy zapytaniu.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • autwywalczyl.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com