多个角色的数据库表

时间:2012-01-18 22:54:32

标签: database-design relational-database database-schema database-table

我遇到了一个架构问题,即如何在关系数据库中存储与特定角色相关的数据。

我有三个角色,Subscriber ContactTeacherStudent。它们都存储在Users表中,但具有与每个表相关的特定属性。学生有SchoolIdGrade,订阅者联系人有DistrictId,教师有ProgramIdSchoolIdGrade

我是否应该为订阅者联系人,教师和学生提供三个单独的表格,还是应该进行某种键/值查找?如果键/值查找如何执行此操作以及如何为外键执行此操作,例如DistrictIdSchoolId

1 个答案:

答案 0 :(得分:1)

您可以模拟继承等内容。一个超类表,包含角色subscriberteacherstudent的所有常用属性。然后,每个角色的三个子类表由每个角色唯一的arrtibutes组成。超类实体与每个子类实体之间将存在一对一的关系。