sql >> Database >  >> RDS >> Database

Een databasemodel voor een online-enquête. Deel 1

Ik moet het ontwerp maken voor een nieuwe database die de gegevenslaag zal zijn voor een aanvraag; de aanvraag wordt een online enquête of peilingen zoals Survey Monkey. Mijn uitdaging is dat de functionaliteit die ik nodig heb niet wordt ondersteund door bestaande enquêtesites, dus ik moet er zelf een bouwen. Wat ik nodig heb is een voorwaardelijke enquête (als het antwoord op vraag 4 "ja" is, dan stellen we vraag 5 en slaan vraag 6 over; maar als het antwoord op vraag 4 "nee" is, dan slaan we vraag 5 over en stellen vraag 6 ).

Ik zal een reeks artikelen over dit ontwerp schrijven en het ontwerp elke keer uitbreiden, dus dit artikel gaat vooral over het instellen van de basis voor de basisenquêtedatabase. In toekomstige artikelen zal ik werken aan de meer geavanceerde functies gerelateerd aan een voorwaardelijke volgorde van vragen in een enquête en de administratie van de enquêtes.

Domein

Het domein voor een online enquête is gebaseerd op een vragenlijst of poll die bestaat uit een reeks vragen. Respondenten zullen de enquête invullen en we moeten hun antwoorden opslaan.

Voorlopig beginnen we met open vragen die bestaan ​​uit een vraag en een antwoord.

In toekomstige versies van het model zullen we de volgorde van de vragen in de enquête willen definiëren, of de vragen al dan niet voorwaardelijk zijn, en de verschillende soorten vragen (zoals meerkeuzevragen).

Functionaliteit

Zoals gezegd vragen we respondenten om op de enquête te reageren (deze is niet voor iedereen toegankelijk) en we moeten hun antwoorden opslaan. Bovendien kan dezelfde deelnemer zijn of haar antwoorden retourneren en bijwerken. reacties opslaan kan enigszins uitdagend zijn, omdat we tabellen nodig hebben die aan de oorspronkelijke vragen zijn gekoppeld, maar die antwoorden hebben voor elk van de respondenten die de enquête invult.

In toekomstige versies van het model zullen we beheerders van de online enquêtes toevoegen.

Ten slotte zullen er rapporten en analyses moeten zijn:wat waren de reacties? Hoeveel reacties zijn er ontvangen van verschillende subgroepen? Op welke vragen werd het vaakst niet gereageerd (om slecht geformuleerde vragen te identificeren)?

Entiteiten en relaties

Even kijken:we hebben een enquête (of vragenlijst) die bestaat uit een reeks vragen. Voorlopig beginnen we alleen met open vragen, dus er is geen behoefte aan mogelijke antwoorden die aan de vraag zijn gekoppeld, zoals bij meerkeuzevragen wel het geval zou zijn. De volgorde van vragen in de enquête ligt vast (gedefinieerd wanneer de enquête wordt gemaakt), maar in toekomstige versies van het model willen we de optie voor een voorwaardelijk pad door de enquête toevoegen.

Uiteraard hebben we respondenten en hun antwoorden nodig. Zoals vermeld, zullen we in toekomstige versies van het model gebruikersbeheer toevoegen.

Formeel ontwerp

Nu we de entiteiten en relaties kennen, zijn we klaar om ons Entity Relationship Diagram (ERD) te bouwen. Om dit te doen, gebruiken we Vertabelo , een online tool voor databasemodellering. Als je je Vertabelo-account nog niet hebt, kun je je hier aanmelden voor een gratis proefabonnement.

Voor onze online enquête beginnen we met de enquête, de bijbehorende vragen en de volgorde waarin de vragen worden weergegeven. We voegen de respondenten toe en koppelen vervolgens de enquêtes waarop een respondent antwoorden heeft gegeven en hun antwoorden voor een enquête.




Laten we dat voorlopig als basis gebruiken en verdere complexiteit toevoegen in toekomstige versies van het model.

Conclusie

Met ons basisontwerp gedefinieerd, kunnen we nu gaan nadenken over verbeteringen. In toekomstige artikelen zal ik werken aan de meer geavanceerde functies zoals:

  • Verschillende soorten vragen, zoals meerkeuzevragen
  • Voorwaardelijke volgorde van vragen in een enquête
  • Beheer van de enquêtes.


  1. Is er een beste manier om te voorkomen dat een proces meer dan eens in Oracle wordt uitgevoerd?

  2. De regels van Codd in SQL

  3. Hoe kan ik afbeeldingen opslaan en ophalen uit een MySQL-database met behulp van PHP?

  4. Een database handmatig comprimeren en repareren in Access 2016