El diseño de la base de datos debe seguir un modelo de diseño de información más general derivado de un modelo de información conceptual , preferiblemente en forma de diagramas de clase UML (por su expresividad). El siguiente es un modelo de información conceptual para su problema:
Tal modelo aún tiene que enriquecerse con atributos de identificador estándar adecuados y tipos de datos para obtener un modelo de diseño de información. Al eliminar las asociaciones y composiciones (reemplazándolas con propiedades de referencia), obtenemos el siguiente modelo de clase OO, que puede usarse como base para codificar Java/C#/PHP/etc. clases:
Tenga en cuenta que hemos agregado soporte para cuestionarios multilingües en este modelo de clase OO al agregar un IsoLanguageCode
enumeración y un TextItem
clase con una clave principal de dos partes que consta de un ID de elemento de texto y un código de idioma, de modo que los cuestionarios, las preguntas y las opciones de respuesta utilizan un ID de elemento de texto para hacer referencia a los elementos de texto utilizados como título, texto de pregunta y texto de respuesta. Observe también que el Quiz
la clase tiene una propiedad derivada \availableLanguages
que se puede calcular con la ayuda de una consulta que recupera todos los idiomas para los que están disponibles los elementos de texto para todas las preguntas de un cuestionario y todas sus opciones de respuesta.
Se puede derivar un modelo de diseño de base de datos SQL a partir de un modelo de clase OO reemplazando las propiedades de referencia con los atributos de clave externa correspondientes: