首页 > 解决方案 > 我将如何构建这个数据库?

问题描述

我编写了一个战舰游戏,现在我正在尝试制作它,以便用户在猜出战舰的位置之前,他们必须得到一个正确的数学问题。然后,我希望被问到的问题的难度能够适应用户的能力。我认为最好的方法是创建一个按难度列排列的数学问题表。例如,第一个问题将是第 5 列中的随机问题;如果用户正确,则将从第 6 列询问下一个问题,如果从第 4 列询问不正确。我以前从未创建过数据库,我需要有关如何执行此操作的帮助。

标签: c#database

解决方案


创建一个名为 Question 的表,其中包含以下列:

  • 名称 - 唯一标识问题。
  • 文本 - 用户将看到的问题文本。
  • ExpectedAnswer - 问题的预期答案;由于这些是数学问题,我假设您希望用户输入数字答案,然后您可以将其与预期答案进行比较。
  • 难度 - 问题的难度。

通过将难度设为一列,您不需要有多列问题。这是一个数据库“规范化”的例子。它允许您运行这样的查询:

select Name, Text, ExpectedAnswer from Question where Difficulty = 'Hard'

你还需要有一些不重复问题的方法。例如,保留您已经提出的问题的列表,然后您可以使用查询:

select Name, Text, ExpectedAnswer from Question where Difficulty = 'Hard' and Name not in listOfPreviouslyAskedQuestions.

您需要弄清楚如何将listOfPreviousAskedQuestions传递到数据库查询中。


推荐阅读