sql >> Databasteknik >  >> RDS >> Mysql

databasdesign för frågesport med olika språk

Databasdesign bör följa från en mer allmän informationsdesignmodell härledd från en konceptuell informationsmodell , helst i form av UML-klassdiagram (på grund av deras uttrycksförmåga). Följande är en konceptuell informationsmodell för ditt problem:

En sådan modell måste fortfarande berikas med lämpliga standardidentifieringsattribut och datatyper för att erhålla en informationsdesignmodell. Genom att eliminera associationerna och kompositionerna (ersätta dem med referensegenskaper) får vi följande OO-klassmodell, som kan användas som grund för kodning av Java/C#/PHP/etc. klasser:

Observera att vi har lagt till stöd för flerspråkiga frågesporter i denna OO-klassmodell genom att lägga till en IsoLanguageCode uppräkning och en TextItem klass med en tvådelad primärnyckel som består av ett textobjekts-ID och en språkkod så att frågesporter, frågor och svarsalternativ använder ett textobjekt-ID för att referera till de textobjekt som används som deras titel, frågetext och svarstext. Lägg också märke till att Quiz class har en härledd egenskap \availableLanguages som kan beräknas med hjälp av en fråga som hämtar alla språk för vilka textobjekt för alla frågor i ett frågesport, och alla deras svarsalternativ, är tillgängliga.

En SQL-databasdesignmodell kan härledas från en sådan OO-klassmodell genom att ersätta referensegenskaperna med motsvarande främmande nyckelattribut:



  1. Hur man uppdaterar en graf med matplotlib

  2. Python Pandas to_sql, hur skapar man en tabell med en primärnyckel?

  3. Felaktig användning av UNION och ORDER BY?

  4. Snabbaste sättet att läsa enorma MySQL-tabeller i python