【发布时间】:2011-02-17 20:07:21
【问题描述】:
我必须创建一个数据库,我想知道什么是最好的解决方案。
假设我必须存储有关学生和教师的信息。
我应该制作一张包含学生和老师的所有个人信息(姓名、电子邮件、电话密码)的表格吗?
我应该将它们作为 ADD_TEACHERS 和 ADD_STUDENTS 保存在单独的表中吗?
【问题讨论】:
标签: database database-design data-modeling
我必须创建一个数据库,我想知道什么是最好的解决方案。
假设我必须存储有关学生和教师的信息。
我应该制作一张包含学生和老师的所有个人信息(姓名、电子邮件、电话密码)的表格吗?
我应该将它们作为 ADD_TEACHERS 和 ADD_STUDENTS 保存在单独的表中吗?
【问题讨论】:
标签: database database-design data-modeling
您可能希望为姓名、电子邮件等常见数据创建一个 people 表。然后您可以在此表中使用主键列,如果必须有特定于教师的信息(如 course_instructor、班主任),然后使用来自人们的唯一键作为 course_information 表中的参考。对学生也这样做。
【讨论】:
听起来你最好的办法是为教师和学生设置一张单独的桌子。您将在教师和学生之间建立所谓的一对多关系:一位教师,许多学生。
但这仅涵盖一个学期。考虑其他学期时,学生和老师之间是多对多的关系。
最后,您最好使用至少三个表:教师、学生和师生关系。
【讨论】:
您要做的第一件事是映射实体关系(ER) 及其属性。然后设计数据库并应用规范化策略。
在建议的场景中,学生和教师是不同的实体。并找出他们的关系
然后查看他们的属性 Example - Student(Name,Class,DOB)
【讨论】:
这取决于您将如何使用这些数据。如果您有很多对“人”感兴趣的用例,无论角色如何,或者如果您有很多既是教师又是学生的人,您可能想学习 gen-spec 设计模式,因为它适用于关系表。
【讨论】: