sql >> Databáze >  >> RDS >> Database

Databázový model pro online průzkum. Část 1

Potřebuji vytvořit návrh nové databáze, která bude datovou vrstvou pro aplikaci; žádost bude online průzkum nebo hlasování jako Survey Monkey. Mým problémem je, že funkcionalitu, kterou požaduji, nepodporují existující průzkumné weby, takže si musím vytvořit vlastní. Potřebuji podmíněný průzkum (pokud je odpověď na otázku 4 „ano“, položíme otázku 5 a otázku 6 přeskočíme; pokud je však odpověď na otázku 4 „ne“, přeskočíme otázku 5 a položíme otázku 6 ).

Budu psát sérii článků o tomto designu a pokaždé ho rozšířím, takže tento článek je většinou o nastavení scény pro základní databázi průzkumů. V budoucích článcích budu pracovat na pokročilejších funkcích související s podmíněným pořadím otázek v průzkumu a administrací průzkumů.

Doména

Doména pro online průzkum je založena na dotazníku nebo anketě, která se skládá ze série otázek. Respondenti se zúčastní průzkumu a my musíme jejich odpovědi uložit.

Prozatím začneme otevřenými otázkami které se skládají z otázky a odpovědi.

V budoucích verzích modelu budeme chtít definovat pořadí otázek v průzkumu, zda jsou otázky podmíněné či nikoli, a různé typy otázek (např. výběr z více možností).

Funkčnost

Jak již bylo zmíněno, budeme se ptát respondentů reagovat na průzkum (nebude přístupný všem) a jejich odpovědi musíme ukládat. Kromě toho se stejný účastník může vrátit a aktualizovat své odpovědi. Ukládání odpovědí může být poněkud náročné, protože budeme potřebovat tabulky, které budou propojeny s původními otázkami, ale budou mít odpovědi pro každého z respondentů, kteří průzkum dokončí.

V budoucích verzích modelu přidáme administrátory online průzkumů.

Nakonec budou muset existovat zprávy a analýzy:Jaké byly odezvy? Kolik odpovědí bylo obdrženo z různých podskupin? Na které otázky se nejčastěji neodpovídalo (k identifikaci špatně formulovaných otázek)?

Entity a vztahy

Podívejme se:máme průzkum (nebo dotazník) skládající se ze série otázek. Prozatím začínáme pouze s otevřenými otázkami, takže není potřeba možných odpovědí spojených s otázkou, jak by to bylo nutné u otázek s výběrem odpovědí. Pořadí otázek v průzkumu bude pevné (definované při vytváření průzkumu), ale v budoucích verzích modelu bychom rádi přidali možnost podmíněné cesty průzkumem.

Je zřejmé, že budeme potřebovat respondenty a jejich odpovědi. Jak již bylo zmíněno, v budoucích verzích modelu přidáme správu uživatelů.

Formální design

Nyní, když známe entity a vztahy, jsme připraveni sestavit náš diagram vztahů entit (ERD). K tomu použijeme Vertabelo , online nástroj pro modelování databází. Pokud ještě nemáte svůj účet Vertabelo, můžete se zde zaregistrovat a získat bezplatný zkušební plán.

U našeho online průzkumu začneme průzkumem, souvisejícími otázkami a pořadím, ve kterém jsou otázky zobrazeny. Přidáme respondenty a poté propojíme průzkumy, na které respondent odpověděl, a jejich odpovědi pro průzkum.




Prozatím to použijme jako základ a v budoucích verzích modelu přidejte další složitost.

Závěr

S naším základním designem definovaným nyní můžeme začít přemýšlet o vylepšeních. V budoucích článcích budu pracovat na pokročilejších funkcích, jako jsou:

  • Různé typy otázek, jako jsou otázky s výběrem odpovědí
  • Podmíněné pořadí otázek v průzkumu
  • Administrace průzkumů.


  1. Jak napíšete dotaz bez rozlišení velkých a malých písmen pro MySQL i Postgres?

  2. Vyberte tři nejlepší hodnoty v každé skupině

  3. Nastavení cizích klíčů v phpMyAdmin?

  4. Jak funguje funkce timezone() v PostgreSQL