我正在为一个小项目建立一个数据库。我没有太多经验,所以我不确定,但我觉得我没有正确地接近这个。
我有一个系统,允许用户创建课程,其中包含他们回答的问题部分。我已将课程、部分和问题作为单独的实体分开,但问题表需要来自以下内容的外键:
问题:对于需要来自任何地方的外键的问题表,这种布局是否可以接受?有什么可以改进的吗?
谢谢你的帮助。
小智 6
坏的。以下是一些随机笔记,这些笔记来自处理此类系统的经验。随心所欲:
一个大问题是 xyz_N 列(即answer_2
和a5_comment
)。当你看到这个时,想想不正确的归一化数据。如果有 6 个问题会发生什么?100题?(哦,是的,我开发了这种软件,你不会相信人们会回答多少问题!)
另一个糟糕的设计是试图“共享”一张表:问题也可以作为“答案”?不; 再次,非规范化数据!多人如何回答而不重复数据?这是不可能的,因为每个“答案”都是一个问题!从行动/查询的角度思考并询问它们是否可以实现。
记住上述内容,调查/考试(“包含问题”)和回复(“包含答案”)之间存在非常重要的缺失关系。这些关系对于规范化(无 xyz_N 列)以及能够提出诸如“我现在应该展示哪些问题?”之类的问题非常重要。
没有与课程相关的“用户”。有教师(教师)和学生。学生不能“拥有”课程。这很容易和干净地分离,并允许更好的 DRI。此外,需要为不同的“用户”类型捕获不同的信息 - 相信我。此外,有时老师也是学生!
从“回答”/问题到课程的冗余关系;这种关系存在问题到部分到课程,不需要重复。
归档时间: |
|
查看次数: |
1100 次 |
最近记录: |