数据库结构:创建要由其他表引用的Person表

时间:2011-11-12 01:26:41

标签: database foreign-keys

我有一个关于实体创作的问题,该实体创作特定于我正在构建的学生信息系统。我创建了一个Person表(id ..),我试图找出我如何处理我的学生,父参考。创建两个通过FK关系引用Person表的单独表(Student,Parent)是个好主意吗?有关Person(名字,姓氏,SSN ......)的所有详细信息都已在Person表中设置,但父项和学生之间存在差异,您如何在数据库中处理此问题?

3 个答案:

答案 0 :(得分:0)

由于父母和学生之间存在根本差异,因此两个表格将是首选解决方案。通过这种方式,您可以轻松创建连接学生和家长的关系。

另一个选项是在不适用于给定记录的列中使用空值。但是,确保关系始终连接学生和家长将更加困难。

答案 1 :(得分:0)

我同意Casey Robinson的说法,认为它是一个干净的解决方案。

但是如果你已经有一个被其他代码使用的填充Person表...总之你不能改变Person表,那么这就是我的建议:

创建一个表(studentParent),它将有两列(student_id和parent_id)两个外键。 studentParent.student_id =学生的Person.id和parentParent.parent_id =父母的Person.id。

这样您就不必更改Person表。并将能够创建父母和学生的关系。

答案 2 :(得分:0)

在不知道更多细节的情况下,似乎有两个表Person和Student就足够了。在Student表中有两列,如Student_id和Parent_id,每列都是Person表中的FK到person_id。这是假设您只需要知道父母而不是每个人的学生。还假设学生和家长都是人。

相关问题