Avatar billede martin100 Nybegynder
21. januar 2005 - 14:32 Der er 6 kommentarer

Kvalificeret bud på database opbygning

Hejsa.

Jeg vil gerne høre din kommentar inden jeg kaster mig ud i noget rod mht. database opbygning og hvor hurtig en side bliver at loade.

Jeg er i gang med at lave en slags luftfartsquiz. Databasen består af 14 fag og i de respektive fag er der flere end 150 spørgsmål. Man skal være logget ind for at kunne tage de enkelte test. Derfor vil jeg gerne høre, hvordan og hvorledes det ville være bedst at bygge databasen op, for siden skal jo kunne fungere, så optimalt og hurtigt som overhovedet muligt!

Hvad er bedst?

-    I de enkelte fag laver jeg en tabel med alle de spørgsmål faget skal indeholde ca. 150 poster?
Vil det ikke gøre min database alt for stor og langsom?

-    Eller ville det være bedre i hvert fag at lave små tabeller af ca. 25 spørgsmål hver?
Det synes jeg bare ikke lyder til at være det rigtige løsning?

-    Og da man skal være logget ind, vil de så være bedst at lave brugerprofiler/passwords osv i  en database for sig selv?

Det er min ide at en test skal være på ca. 25 spørgsmål i det respektive fag. Kan man ved en database connection ved f.eks airlaw1.asp hive data ud fra record 1-25 og f.eks. på airlaw2.asp hive fra records 25-50? Så ville løsning 1 jo være perfekt? Eller hvad?

Indtil videre har jeg fået lavet en side som tager et random record fra databasen (i det respektive fag) og samtidigt fået sørget for at den ikke vil tage det samme spørgsmål to gange, hvis der nu er to personer som sidder ved hver sin pc ved siden af hinanden, så får de ikke de samme spørgsmål!

Siden skal fungere på den måde, at man får et random spg og ikke de samme to gange, derefter skal den tage ca. 25 spørgsmål. Efter dette skal man gå til f.eks. results.asp som sammenligner brugerens svar med det rigtige svar og til sidst giver en procentscore og resultatet gemmes i hans bruger profil.

Hvordan vil det være bedst at opbygge databasen? Kan i se nogle problemer som jeg vil løbe ind i?
Og hvordan skal ASP delen opbygges?

Her er mit bud på hvordan siden skal opbygges:

Spg.asp - Her kommer random spørgsmål med radio knapper hvor brugerens svar gemmes i en session.

Results.asp – her sammenlignes der og der gives score og der gemmes i brugerprofil.

Håber på lidt(MEGET) professionel rådgivning fra jer eksperter J….

HJÆLP!!!
Avatar billede syvon Nybegynder
21. januar 2005 - 14:44 #1
luk det ene spm.
Avatar billede lorentsnv Nybegynder
21. januar 2005 - 15:54 #2
Det vil være nemmest at samle alle spørgsmål i en enkelt tabel, og have et felt 'Fag' som indikerer hvilket fag spørgsmålet tilhører. Hvis det er tale om ca. 14*150 spørgsmål, så er det små mængder for en database, enten det er Access eller en serverbaseret databse som SQL Server, MySQL eller Oracle.

Du skal nok også have en tabel hvor du den enkelte bruger bliver registreret, og også en tabel der viser hvilke spørgsmål den enkelte bruge har haft. I den siste tabel skal du registrere ID'en på brugeren, ID'en på spørgsmålet, og TestNr (se nedenfor), så du senere kan gruppere de spørgsmål brugeren fik i den enkelte test.

Jeg ville også lavet en tabel hvor jeg registrerer en enkelt linie for hver gang en bruger laver en test. Denne tabel kunne indeholde:
TestNr    - ID felt med Autonummerering, som viser en record for alle startede tests
BrugerID
Dato
Procentscore
Avatar billede martin100 Nybegynder
21. januar 2005 - 16:30 #3
lorentsnv ->

Okay. Så du mener det ville være klogest at lave en stor database.
Så det vil sige at databasen skal indeholde: Bruger oplysninger (password, brugernavn osv) En tabel til når en bruger laver en test og til sidst fagene med de respektive spørgsmål?

Men rent kodemæssigt, hvordan ville du så sætte det op? Hvilke sider ville du lave?
Avatar billede martin100 Nybegynder
21. januar 2005 - 16:31 #4
Glemte at sige det selvfølgelig er en Access db
Avatar billede lorentsnv Nybegynder
22. januar 2005 - 10:02 #5
Jeg ville haft fire tabeller:
-tblPerson: En table med brugeroplysninger (navn, password og andre oplysninger som kun findes en gang på hver bruger)
-tblTest: En tabel der indeholder oplysninger om den endkelte test for en person (PersonID, TestID, Dato, procentscore og øvrige oplysninger vedrørende hver enkelt test, med undtag af hvilke spørgsmål personen fik, da jeg vil anbefale at have disse oplysninger i en egen tabel)
-tblSprgsmlTest: En tabel der viser hvilke spørgsmål den enkelte bruger har fået til hver test (SpørgsmålID, TestID, PersonID - PersonID er egentlig ikke nødvendig, da denne oplysninger findes i tblTest, og du har TestID med i denne tabel, men det kan nogle ganer være nemmere at have PersonID med for at undgå at linke til tblTest tabellen hvis du skal se hvilke oplysninger den enkelte person har haft)
tblSprgsml: Her har du dine spørgsmål, og også et felt til at definere hvilket fag det er. Måske har du en 5. tabel med fag, og så kan du referere til FagID i denne tabel.

Jeg vender tilbage lidt senere med en kommentar ang. dine asp-sider.
Avatar billede lorentsnv Nybegynder
26. januar 2005 - 09:23 #6
Opbygnign af asp-sider afhænger lidt af om du vil oprette stamdata direkte i Access, eller om dette også skal gøres i asp. Det nemmeste vil være at lave en formularer i Access til dette.

Du skriver at du i spg.asp vil genne resultaterne i en session, med resultaterne bør også gemmes tilbage til en Access-tabel (som tblSprgsmlTest beskrevet i tidligre svar).
Resultatet ville jeg gemt i tblTest som beskrevet tidligere.
Er du kommet videre med din luftfartsquiz?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester