【问题标题】:Database structure for Tests测试的数据库结构
【发布时间】:2011-09-01 19:12:35
【问题描述】:
嗯,我对 mysql 真的很陌生,我不知道要做什么,或者至少不是有效的方法。
我必须建立一个数据库来保存人们的信息
每个人都有 3 门课程要通过(教育课程中的课程)假设它的第 1、2 和 3 阶段,如果没有完成课程 1,他们无法开始课程 2
每门课程有 10 个测试,它们具有相同的名称(例如,在 course1 中有一个名为 example1 的测试,在 course2 中也有一个名为 example1 的测试,但难度更大)
没有成绩,只是通过或不及格
最后他们被允许参加 3 次考试,我想存储日期(每次尝试)以及谁是考试的申请人(每次尝试),“老师”的名字是在桌子上
【问题讨论】:
标签:
php
mysql
database
database-design
structure
【解决方案2】:
试试mySql创建的Sakila数据库,这是一个用于训练的示例数据库。您将从那里学到一些技巧,在创建自己的数据库之前或什至在阅读一些书籍或主题之前非常有用。
【解决方案3】:
除了帕特里西奥的回答(我认为这是有价值的好建议)。拿你上面写的东西并扩展它。在您的描述中找到关键作品(我希望这将包括人员、课程、测试......)。对于每个关键字,请确定您需要保留的所有详细信息。
例如“我必须建立一个数据库来保存人们的信息” 对于我需要知道的人......可能是名字、姓氏、出生数据、员工编号等。一个人的任何细节都与你有关。在电子表格或文档中列出它们。对每个关键字重复此操作。
然后考虑运行系统需要知道的项目,最后一个要点指向这个方向。从中找出任何新的关键词,然后确定您需要了解的有关这些关键词的详细信息。
获取您的详细信息列表并将其标准化。作为一般经验法则,目标是第三范式。在大多数情况下,它似乎是更高水平的标准化与不做之间的可行折衷。也许是那些 80/20 规则之一,通过 20% 的努力到达那里(而不是规范化到第 6 范式),您可以获得规范化的 80% 的好处。
提出一个建议,如果您愿意,请随时回来让我们批评它。