Autor Zpráva
jefitto44
Profil
Chcel by som sa vyhnúť nejakým blbým postupom. Potreboval by som spraviť niečo ako kvízovú miniaplikáciu. V podstate sa bude jednať o pár podstránok
- prihlásovacia podstránka
- vlastný profil a jeho úprava
- zoznam kvízov
- konkrétny kvíz
- Rebríček užívateľov

Moja otázka skôr smeruje k databáze.
Každý kvíz bude mať 5 stupňov obtiažnosti, môže byť zaradený v 5 kategóriách a ku každému bude priradených 150 otázok, pričom sa užívateľovi zobrazí vždy iba 15 (Čiže zo 150 otázok sa mu vyžrebuje 15, na ktoré bude odpovedať. ) K tomu sa samozrejme vyberú hodnoty, ktoré budú nadefinované v DB, z čoho len jedna bude správna.

DB by teda mohla vyzerať nejako takto
TABLE user - user_id, user_nick, user_pwd, user_points (zrátané body za jednotlivé kvízy), user_admin (admini budú môcť tvoriť nové testy- boolean 1/0), user_rank (ranky sa budú pridávať na základe percentuálnej úspešnosti)
TABLE user_profile - profile_user_id, user_id (na základe neho sa budú ľahko JOINovať tabuľky), user_photo,... atď
TABLE quiz - quiz_id, quiz_category[id z tabuľky quiz_category], quiz_difficulty[id z tabuľky quiz_difficulty]
TABLE quiz_difficulty - difficulty_id, difficulty_name
TABLE quiz_category - category_id, category_name
TABLE quiz_question (zoznam všetkých otázok) - question_id, quiz_id (na základe tohto bude otázka patriť danému kvízu), question_content (znenie otázky)
TABLE quiz_answer (zoznam odpovedí) - answer_id, quiz_id (odpoveď patrí k danému kvízu), question_id (odpoveď patrí danej otázke), answer_content (znenie odpovede), right (1/0 podľa toho, či ide o dobrú, alebo zlú odpoveď)
TABLE rank - rank_id, rank_name, rank_icon

Chcem sa spýtať, či je nejaká šanca, že sa mi to môže podariť?
Tomáš123
Profil
jefitto44:
Chcem sa spýtať, či je nejaká šanca, že sa mi to môže podariť?
Myslieť hneď (a stále) na to ako bude aplikácia vyzerať väčšinou vedie k jej nedokončeniu. Vieš, to, že máš pekné predstavy za teba prácu nevykoná. Až pri ozajstnom vytváraní zistíš, či je databáza dobre navrhnutá a či do nej netreba nič pridať.

Takže pekne začni programovať a vráť sa keď budeš mať konkrétnejší problém.
Keeehi
Profil
Tomáš123:
Udělat si pořádný návrh databáze je naopak velmi žádoucí dělat na začátku projektu. Ponechme zatím stranou to že se začíná návrhem modelů a z nich až pak vycházejí návrhy databází. Ani to nemusí být pravda ale budiž. Samozřejmě že záleží na velikosti projektu a zkušenostech, ale není problém u toho strávit několik hodin a nedá se říct, že by to bylo plýtvání. Takže jefitto44 naopak chválím za tento přístup. Ono si při tom člověk uvědomí dost věcí na které stejně musí přijít. Tím neříkám, že návrh je pk neměnný ale je vemi výhodné mít solidní základ nad kterým se dá budovat.

jefitto44:
Začněme od konce. Ano je to možné, vždy existuje šance, že se to podaří. Je dokázáno, že spousta věcí nejde, neexistuje v nám známém světě ovšem vytvoření kvícové aplikace k nim nepatří. ;)

K návrhu - vidím tam logické chyby které neodpovídají tvému zadání (např. kvíz nemůže být zařazený až v pěti kategoriích), a vidím tam i různé neefiktivní návrhy hlavně v práci s cizími klíči a primárními klíči, kde se to zbytečně duplikuje. Ale není to úplně hrozné, viděl jsem mnohem hoší případy. Nemělo by být těžké to opravit.
Osobně mám trochu problém s tím, jak si představuješ vztah mezi kvízem a 5ti stupni obtížnosti. Kdyby jsi to mohl rozvést a případně ukázat na příkladu, tak by to pomohlo.
A ještě rank - ten nevidím nikde vysvětlený. Možná že to agreguje odpovědi jednotlivých uživatelů které nikde nevidím. Ale nesedí mi k tomu zase jeho sloupce. Tak celkem tápu.

Rohodně nejsi na špatné cestě, ale taky to bude chtít na tom zapracovat.
jefitto44
Profil
Takže... každy kvíz môže byť zaradený len v jednej kategórií... napr kvízy z biologie atď... a tie sa budú ďalej deliť- ľahký kvíz z biologie, ťažký kvíz z biologie atď

Rank bude fungovať asi tak, že bude počítať percentnú úspešnosť všetkých otázok užívateľa a na základe toho bude nejaká PHP funkcia, ktorá bude percentuálnu úspešnosť prevádzať do slovného hodnotenia (napr. rank - Skiller)
lionel messi
Profil
jefitto44:
Chcem sa spýtať, či je nejaká šanca, že sa mi to môže podariť?
Áno, nevidím to rozhodne zle a držím palce pri úspešnej realizácii. Súhlasím s Keeehim v otázke návrhu db na začiatku plánovania projektu i pripomienkami. Možno by som do tabuľky quiz_answer ukladal len správne odpovede namiesto všetkých, ale vôbec nepoznám návrh tvojej aplikácie (napr. ako budú otázky vyzerať) a zrejme by to znamenalo zložitejšie vyhodnocovanie.

Teoretické čítanie o správnom návrhu db (ak by ťa náhodou zaujalo): interval.cz/clanky/databaze-a-jazyk-sql (podstatná je časť od nadpisu Normální formy) alebo www.manualy.net/article.php?articleID=13
Keeehi
Profil
lionel messi:
Články jsem nečetl ale rozhodně jsou k tématu. Jestli to jefitto44 chceš dělat nějakým lepším způsobem, rozhodně doporučuji nastudovat toto téma. Ještě bych k tomu přidal neco k doménový model.

Mohl bych ti tu vysypat řešení, ale předpokládám, že si to chceš udělat sám. Pokud bys chtěl něco obsáhlejšího vysvětlit, kontakt mám v profilu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0