sql >> Database >  >> RDS >> Mysql

databaseontwerp voor quiz met verschillende talen

Databaseontwerp zou moeten volgen uit een meer algemeen informatieontwerpmodel afgeleid van een conceptueel informatiemodel , bij voorkeur in de vorm van UML Class Diagrams (vanwege hun expressiviteit). Het volgende is een conceptueel informatiemodel voor uw probleem:

Een dergelijk model moet nog worden verrijkt met geschikte standaard identifier-attributen en datatypes om een ​​informatieontwerpmodel te verkrijgen. Door de associaties en composities te elimineren (ze te vervangen door referentie-eigenschappen), verkrijgen we het volgende OO-klassemodel, dat kan worden gebruikt als basis voor het coderen van Java/C#/PHP/etc. klassen:

Merk op dat we ondersteuning hebben toegevoegd voor meertalige quizzen in dit OO-klassemodel door een IsoLanguageCode toe te voegen opsomming en een TextItem klasse met een tweedelige primaire sleutel bestaande uit een tekstitem-ID en een taalcode zodat quizzen, vragen en antwoordopties een tekstitem-ID gebruiken om te verwijzen naar de tekstitems die worden gebruikt als hun titel, vraagtekst en antwoordtekst. Merk ook op dat de Quiz class heeft een afgeleide eigenschap \availableLanguages die kan worden berekend met behulp van een query die alle talen ophaalt waarvoor tekstitems voor alle vragen van een quiz en al hun antwoordopties beschikbaar zijn.

Van zo'n OO-klassemodel kan een SQL-databaseontwerpmodel worden afgeleid door de referentie-eigenschappen te vervangen door overeenkomstige refererende sleutelattributen:



  1. PostgreSQL 11:Patchrecensenten voor het partitioneren van patches

  2. Verouderde MySQL-extensie in PHP 5.5.x

  3. Vreemde sleutels, blokkeren en updateconflicten

  4. Efficiënter hiërarchiesysteem