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

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

V části 1 této série článků jsme diskutovali o základním návrhu online průzkumu. V závěru tohoto článku jsem zmínil část 2, která by se týkala pokročilejších funkcí pro náš průzkum, 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 nebo jinými slovy možnost podmíněné cesty průzkumem
  • Administrace z průzkumů
  • Přehledy a analytika

Začněme rozšířením funkcí o podporu různých typů otázek.

Typy otázek

V části 1 z této série článků jsme používali pouze otevřené otázky, které se skládaly z otázky a odpovědi. V tomto článku definujeme různé typy otázek, jako jsou polární otázky (ano-ne) a otázky s možností výběru . Každá otázka bude spojena s typem. U polárních otázek povolíme jako odpověď pouze ano/ne, ale v budoucnu bychom mohli povolit varianty jako pravda/nepravda. Otázky, které nejsou otevřené, budou mít možné odpovědi, ze kterých si respondent může vybrat.

V budoucnu přidáme otázky, které vyžadují hodnocenou odpověď. Například:„Jak moc se vám líbí návrh databáze; hodnotit mezi 1 a 100 (přičemž 1 znamená, že se vám to líbí velmi málo a 100 znamená, že se vám to líbí nesmírně)?“

Entity a vztahy

Pro různé typy otázek v průzkumu rozšířím oblast „otázek“ o typy a možnosti odpovědí.

V ideálním případě bych chtěl vytvořit cizí klíč mezi skutečnými odpověďmi a možnými odpověďmi na otázky s výběrem odpovědí (response_choice), aby byla zajištěna integrita dat. To by fungovalo, pokud by všechny otázky měly výběr odpovědí a otevřené otázky nebyly povoleny. Protože potřebuji podporovat otevřené otázky, budu muset zajistit integritu odpovědí v kódu aplikace.

Formální design

Potřebujeme rozšířit ERD, který byl vytvořen v části 1 této série článků. Stejně jako dříve použiji Vertabelo, online databázový modelář. Pokud ještě nemáte účet Vertabelo, můžete se zaregistrovat pro bezplatnou zkušební verzi zde.

Udělám jednu poznámku; zjistíte, že k definování délky varcharových polí obecně používám zaokrouhlená čísla jako 100 nebo 1000; Netvrdím, že se jedná o nezbytně vhodnou velikost, ale spíše to používám jako zkratku místo toho, abych nechal délku nedefinovanou. Při používání tohoto modelu upravte délky podle svých konkrétních požadavků. Umožníte například respondentovi zadat velmi, velmi dlouhou odpověď na otevřenou otázku – nebo je omezíte na, řekněme, 1000 znaků? To může záviset na aplikaci, kterou vytváříte pro použití databáze, protože může mít omezení délky polí.

Přidávám tabulku question_type propojenou s otázkou:tyto mohou mít název „otevřená“, „ano-ne“, „výběr z více možností“ a v budoucnu „hodnocení“. U otázek s více možnostmi by každá otázka měla odpověď_výběry, ze kterých lze vybírat.

Dalo by se to dokonce použít k implementaci polárních otázek, ale myslím, že to je přehnané. Dalším řešením by bylo propojit response_choice s question_type, takže řádek question_type „yes-no“ by byl propojen s řádky response_choice „Yes“ a „No“, ale znovu se domnívám, že to není nutné – ale můžete, pokud chcete vícejazyčné možnosti. Poté byste zahrnuli pole pro jazyk respondenta do tabulky response_choice nebo spravovali internacionalizaci v uživatelském rozhraní.




Vybarvil jsem tabulky vytvořené v části 1  žlutě  a nově přidané tabulky  oranžově , aby bylo snazší vidět doplňky.

Závěr

Nyní jsme začali implementovat vylepšení, která byla diskutována v části 1 této série článků.

V příštím článku přidám další podporu pro následující funkce:

  • Podmíněné pořadí otázek v průzkumu
  • Administrace průzkumů
  • Přehledy a analýzy

  1. Vytvořte spouštěč DML na serveru SQL Server

  2. Jak opravit „Server není nakonfigurován pro DATA ACCESS“ v SQL Server

  3. Doporučené postupy pro práci s více tabulkami

  4. Vydán SQL Developer 4.1.3