database-design - 多项选择测验引擎的数据库模式的良好设计是什么?

标签 database-design

我有一个项目来创建一个 asp.net mvc 站点来生成一个测验。
这是规范:

  • 对于访问该站点的每个用户,她/他都会得到一个测验。
  • 每个测验都包含一些多项选择题。
  • 每个问题包含一个问题和 5 个互斥的选项。

  • 我能想到的最简单的模型如下:
        public class Problem
        {
            public int ProblemId { get; set; }
            public string Question { get; set; }
            public string A { get; set; }
            public string B { get; set; }
            public string C { get; set; }
            public string D { get; set; }
            public string E { get; set; }
        }
    

    我不确定它是否好。
    你能给我一个更好的设计建议吗?

    最佳答案

    属性 A 到 E?不,谢谢!我会按如下方式布置我的表格:

    Quiz (int QuizId, ...)
    Problem (int ProblemId, int QuizId, string Question)
    Answer (int AnswerId, int ProblemId, int Index, string Answer)
    

    字段名称应该是不言自明的(索引是单个问题答案的排序索引,如果它们的顺序很重要)

    关于database-design - 多项选择测验引擎的数据库模式的良好设计是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894241/

    相关文章:

    数据库设计汽车模型/汽车分类

    mysql - 在 Mysql 中更新表的属性时触发

    database - 使用多个数据库

    mysql - 我如何构造在 MySQL 数据库中链接在一起的一堆项目?

    php - Zend 的多个数据库

    mysql - 存储密码和每个密码的运费

    mysql - 数据库设计 : how to enforce integrity

    mysql - 我还应该索引包含在 PRIMARY KEY 中的列吗?

    mysql - 如何处理 MySql 中一个类别下的唯一项目,其中项目在不同类别下可能不是唯一的?

    php - 如何存储和检索特定日期检索+摘要检索的大量数据?