Autor | Zpráva | ||
---|---|---|---|
Snipo Profil |
Ahojte, skúšam vytvoriť niečo ako online systém pre trénera a narazil som asi na menší problém. Totiž po registrácií užívateľ musí vyplniť dotazník, resp. formulár. Formulár obsahuje veľké množstvo otázok a logicky potrebujem tie hodnoty niekde uchovať pre neskoršie použitie. Aký je najlepší spôsob? Mňa napadlo vytvoriť stĺpec pre každú otázku ale to by ich tam bolo strašne veľa, nevadí to?
|
||
juriad Profil |
#2 · Zasláno: 6. 1. 2016, 23:15:27
Klasicky se to dělá tak, že máš tři tabulky:
Uživatelé (id, jméno) Otázky (id, text, typ) Odpovědi (id_uzivatele, id_otazky, odpoved) Případným rozšířením je například tabulka možností u otázek (když je výběrová). |
||
Snipo Profil |
#3 · Zasláno: 6. 1. 2016, 23:39:23
No, lenže keď to vytvorím takto aj s tou tabuľkou možností, potom čo ukladať do stĺpca odpoved? Kedže pri jednom type otázky to môže byť obyčajný text a pri druhom zase id možnosti.
|
||
juriad Profil |
Snipo:
Budeš mít sloupec textová odpověď, která může být NULL v případě vyběru jedné z možností. Pokud chceš umožnit i více odpovědí z výběru, přidáš další vazební tabulku možnosti_v_odpovědi (id_odpovedi, id_moznosti) Všimni si, že toto umožňuje i textovou odpoěď při výběru možnosti „jiné“ (pak by tabulka možnosti měla i sloupec indikující, zda možnost umožňuje uživatelský komentář). V případě výběru více možností a komentáře každé z nich, by se přidal textový sloupec i do té vazební tabulky. |
||
Snipo Profil |
#5 · Zasláno: 7. 1. 2016, 00:00:43
Jasné, ďakujem za rady...
|
||
Keeehi Profil |
#6 · Zasláno: 7. 1. 2016, 02:34:32
Snipo:
To co navrhuje juriad je typický návrh pro situaci, kdy se otázky generují dynamicky. To znamená, pokud se pro každého uživatele mohou používat jiné otázky. Kdyby jsi měl třeba 30 otázek a každý uživatel by podle nějakého pravidla odpovídal jen na 5 z nich, tak pokud by jsi pro každou vytvořil sloupec, bylo by tabulce spousta prázdného místa. Pokud máš ale 30 otázek a všichni uživatelé ti vyplňují všech 30, může být správným návrhem i jedna velká tabulka s 30ti sloupci. |
||
Časová prodleva: 9 let
|
0