c# - 我将如何构建这个数据库?
问题描述
我编写了一个战舰游戏,现在我正在尝试制作它,以便用户在猜出战舰的位置之前,他们必须得到一个正确的数学问题。然后,我希望被问到的问题的难度能够适应用户的能力。我认为最好的方法是创建一个按难度列排列的数学问题表。例如,第一个问题将是第 5 列中的随机问题;如果用户正确,则将从第 6 列询问下一个问题,如果从第 4 列询问不正确。我以前从未创建过数据库,我需要有关如何执行此操作的帮助。
解决方案
创建一个名为 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传递到数据库查询中。
推荐阅读
- xamarin.android - 在 Xamarin 中调用 JavaScript 函数
- gem5 - 修改gem5中的源代码并重建?
- vuejs2 - 使用 localhost:8080 注册新的 google.com recaptcha 站点引发错误
- kubernetes - Kubernetes 最佳实践 - 将任意数量的 pod 公开到互联网
- python-3.x - 我可以在没有 Flask 应用程序的情况下使用 Flask-Caching 吗?
- pandas - Subtracting two columns named in certain pattern
- php - MySQL data has wrong encoding when displaying using PHP
- mfc - 从 STRG-ALT-ENTF 返回后,Windows MFC SDI 应用程序的客户端区域冻结
- bash - 重击 | 一个班轮 | 卷曲 | 试图遍历文件并将其提供给 curl 但会引发错误?
- maven - 如果 settings.xml 中的配置文件为空,Maven 是否会默认找到其中央存储库?