sql >> Database teknologi >  >> RDS >> Database

En databasemodel til en onlineundersøgelse. Del 1

Jeg skal lave designet til en ny database, som vil være datalaget for en ansøgning; ansøgningen vil være en online undersøgelse eller afstemning som Survey Monkey. Min udfordring er, at den funktionalitet, jeg har brug for, ikke understøttes af eksisterende undersøgelseswebsteder, så jeg skal bygge min egen. Det, jeg har brug for, er en betinget undersøgelse (hvis svaret på spørgsmål 4 er "ja", så stiller vi spørgsmål 5 og springer spørgsmål 6 over; men hvis svaret på spørgsmål 4 er "nej", så springer vi spørgsmål 5 over og stiller spørgsmål 6 ).

Jeg vil skrive en række artikler om dette design og udvide designet hver gang, så denne artikel handler mest om at sætte scenen for den grundlæggende undersøgelsesdatabase. I fremtidige artikler vil jeg arbejde med de mere avancerede funktioner relateret til en betinget rækkefølge af spørgsmål i en undersøgelse og administrationen af ​​undersøgelserne.

Domæne

Domænet for en online undersøgelse er baseret på et spørgeskema eller en afstemning, der består af en række spørgsmål. Respondenter vil deltage i undersøgelsen, og vi skal gemme deres svar.

Indtil videre starter vi med åbne spørgsmål der består af et spørgsmål og et svar.

I fremtidige versioner af modellen vil vi gerne definere rækkefølgen af ​​spørgsmålene i undersøgelsen, om spørgsmålene er betingede eller ej, og de forskellige typer spørgsmål (såsom multiple choice).

Funktionalitet

Som nævnt vil vi spørge respondenter for at svare på undersøgelsen (den vil ikke være åben for alle), og vi skal gemme deres svar. Derudover kan den samme deltager vende tilbage og opdatere deres svar. Gemmer svar kan være noget udfordrende, da vi skal bruge tabeller, der er knyttet til de originale spørgsmål, men som har svar for hver af de respondenter, der gennemfører undersøgelsen.

I fremtidige versioner af modellen vil vi tilføje administratorer af onlineundersøgelserne.

Endelig skal der være rapporter og analyser:Hvad var svarene? Hvor mange svar blev der modtaget fra forskellige undergrupper? Hvilke spørgsmål blev ikke besvaret oftest (for at identificere dårligt formulerede spørgsmål)?

Enheder og relationer

Lad os se:Vi har en undersøgelse (eller spørgeskema), der består af en række spørgsmål. Indtil videre starter vi kun med åbne spørgsmål, så der er ikke behov for mulige svar knyttet til spørgsmålet, som det ville være nødvendigt for multiple choice-spørgsmål. Rækkefølgen af ​​spørgsmål i undersøgelsen vil være fast (defineret, når undersøgelsen oprettes), men i fremtidige versioner af modellen vil vi gerne tilføje muligheden for en betinget vej gennem undersøgelsen.

Det er klart, at vi har brug for respondenter og deres svar. Som nævnt vil vi tilføje brugeradministration i de fremtidige versioner af modellen.

Formelt design

Nu hvor vi kender entiteterne og relationerne, er vi klar til at bygge vores Entity Relationship Diagram (ERD). For at gøre dette bruger vi Vertabelo , et onlineværktøj til databasemodellering. Hvis du ikke har din Vertabelo-konto endnu, kan du tilmelde dig her for at få en gratis prøveperiode.

For vores online-undersøgelse vil vi starte med undersøgelsen, dens tilknyttede spørgsmål og rækkefølgen, som spørgsmålene vises i. Vi tilføjer respondenterne og linker derefter de undersøgelser, som en respondent har givet svar på, og deres svar til en undersøgelse.




Lad os indtil videre bruge det som grundlag og tilføje yderligere kompleksitet i fremtidige versioner af modellen.

Konklusion

Med vores grundlæggende design defineret, kan vi nu begynde at tænke på forbedringer. I fremtidige artikler vil jeg arbejde med de mere avancerede funktioner såsom:

  • Forskellige typer spørgsmål såsom multiple choice-spørgsmål
  • Betinget rækkefølge af spørgsmål i en undersøgelse
  • Administration af undersøgelserne.


  1. Bedre samtidighed i Oracle end SQL Server?

  2. Hvordan bygger man en kolbeapplikation omkring en allerede eksisterende database?

  3. Opdel datointerval i én række om måneden i sql server

  4. Hvorfor har nogle kommandoer ingen effekt i psql?