用户可以创建测验和问题的流体数据时的数据库设计

时间:2012-08-05 02:17:43

标签: database tsql database-design

假设我正在开发一个应用程序,允许任何用户创建测验并将其分配给任何其他用户。应记录这些测验的问题和答案。

该应用程序的目标是能够在特定时刻重新创建测验并显示特定用户选择的答案。我意识到我缺少日期字段,但在此之前,我想要帮助的是什么!

如何处理用户可以创建1个问题的测验而另一个用户决定每个随机类型创建100个问题的事实? 。

我应该在QuizResults表中创建一个可以存储每种类型的问题的列吗?  我应该在一列中序列化所有答案吗?我该怎么办?

一些值得一提的显而易见的事情:

  • 测验有很多问题。
  • 可以为用户分配测验。
  • 用户可以参加很多测验。
  • 一些答案​​将是多项选择,一些将是段落,其他匹配,是真还是假。
  • enter image description here

    1 个答案:

    答案 0 :(得分:0)

    我强烈建议您至少看看这种设计的非关系型数据库。 我说这是关系技术的二十年用户,而不是反SQL狂热者。

    我过去已经了解到,这些面向调查的应用程序必须提供内容和流量方面的灵活性以及问题组织的复杂性,这些应用程序可以通过MongoDB等文档存储或类似的或面向XML的商店,例如MarkLogic(可能很贵)。

    您可以通过附加到内容的元数据来管理“随机性”或答案结构的变化,还可以解决经常出现调查问题的版本控制。

    最终,即使您使用的是关系数据库,我也建议您查看内容管理系统插件。

    只是一个意见。