0

我在管理数据库方面相当新手,但我对我想要完成的教学需求有一个想法。

我打算存储一些学生的英语技能水平信息。我打算让每个学生都登录数据库。在那里,他们应该能够通过选中与特定问题相关的框来评估自己的技能。

我有 7 个不同的类别,它们都包含许多问题。最重要的是,每个类别分为 6 个不同的级别。例如,听力理解有 A1、A2、B1、B2、C1、C2 级别。每个级别代表不同级别的英语技能。这些类别都有一组不同的问题。比如,“如果有人说得很慢并且使用清晰的语言,我可以理解。”

每个类别中的每个问题也有三个复选框。一个学生可以检查他们是否可以对特定问题回答“是”,一个让我(老师)在我确认他们可以时检查,一个复选框让学生填写如果问题是他们想要的目标喜欢到达。

到目前为止,我已经为学生创建了一个表格,一个列出所有 7 个类别的表格,每个类别一个包含许多问题的表格。我还有一个与学生表和类别列表相关的“之间”表,因为直接链接它们将是我假设的多对多关系。

这是设计这样一个数据库的明智方式吗?

我现在最大的问题是如何将复选框添加到组合中。应该将它们添加为单独的表格,还是应该将它们与类别表格中的问题放在一起?显然,它们应该与每个学生以及每个问题相关联。

我还没有开始研究不同的关卡,因为我认为我应该先让它在一个关卡上工作,然后再添加所有其他关卡。

感谢您一直以来的耐心阅读。我希望我已经足够清楚,以便可以帮助我。

4

1 回答 1

1

也许根据我更好的判断,我会将其发布为答案...

我创建了一个简单的数据库结构,并根据您的要求插入了一些数据。你可以在这里查看:http ://www.sqlfiddle.com/#!3/54a2d/3

这种结构非常僵化,以至于添加简单的功能非常困难(建议从头开始)。

例如,如果不显着修改架构,您将无法收到“您学习英语多少年了。”这个问题的正确答案,您无法重新评估学生,学生无法澄清任何答案等。

请记住 - 任何时候您开始添加列以适应新功能时,您的脑海中应该有一个无声的喊叫,告诉您您(可能)做错了。阅读规范化。

另外,我不知道复选框是否会导致许多客户端/服务器组合出现问题,但在带有 SQL Server 后端的 MS Access 中,您需要添加一TIMESTAMP列,以便 Access 可以在提交更新之前确定记录是否已更改。

更新

添加了在 SQL Fiddle 链接上创建的表的可视化表示

在此处输入图像描述

于 2012-09-01T21:31:41.557 回答