首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计/ERD引擎

数据库设计/ERD引擎
EN

Stack Overflow用户
提问于 2013-02-28 14:50:35
回答 1查看 2K关注 0票数 2

从我在学校开始的时候起,我就一直把这个网站作为一个很好的资源--但是我从来没有遇到过这么具体的问题,我希望能得到一些帮助。在确定数据库结构方面,我从来都不是最好的,我的任务是创建一个PHP/MySQL测试引擎,其中包含一些非常具体的规范。

因此,你可以更好地理解我在这里要做的事情--我试图考虑以下几点:

  • 管理员和学生登录是必需的,并提供不同级别的访问。
  • 管理员应该能够构建一个或多个测试,并将其分配给一个或多个学生。
  • 对于管理员在测试中构建的每个问题,管理员应该能够分配一个点值。
  • 测试应该能够提出一个或多个问题。
  • 您的应用程序应该支持三种基本问题类型:真/假、选择题和填空。
  • 最后的结果将显示一个整体的分数,以及学生对每个问题的回答。
  • 一个学生应该能够看到最终的结果,只有他们可以访问的测试。
  • 管理员应该查看来自多个学生的测试结果。
  • 不允许学生重新参加相同的考试。

大多数情况下,我试图处理的是基本结构。一开始我有五张桌子,我把问答部分浓缩成一张桌子--原谅我在这里转换人际关系的拙劣尝试,因为我有20种不同的感觉:

我在正确的轨道上吗?有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-28 16:56:46

一个很好的经验法则与数据库设计在N-1.对于所有有关系的表,您应该有N-1关系(其中N是表的数量)。具有循环引用的表是不-否的。作为安全组件,只需查看测试/查询/答案,就需要有一些基本对象的设计:

  1. 管理员(或教师)表
  2. 试验台
  3. 学生表
  4. 试题表

你没有在你的问题中提到这一点,但是如果你希望每一次考试都与老师教的一堂课联系起来,你也会需要它。使用这四个或五个表,您应该能够创建您的关系。提示:大多数这种关系是多到多的,因此需要一个XRef表来解决这个问题。把你用这个做的事发回去,我们可以看看下一步是什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15138482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档