Asp.net mvc 3 表上的多个关系

Asp.net mvc 3 表上的多个关系,asp.net-mvc-3,database-design,ef-code-first,Asp.net Mvc 3,Database Design,Ef Code First,SQL Server 2012 MVC3 EF4.3.1代码优先项目 我有一个具有一对多关系的教师和学生表。Teacher的表Id将用作账号,因此其Id编号需要与Student分开。我想创建一个Person表(包含共享属性,例如First、Last、Phone、Email),以减少属性上的冗余人员也将与地址表建立一对多关系 我曾想过尝试使用教师和学生继承自个人的每个层次结构模型的表,但这样Id集就不会是单独的,我必须在个人表内部建立一对多关系。我可以通过代码生成ID,但内部一对多是可行的还是实用

SQL Server 2012 MVC3 EF4.3.1代码优先项目

我有一个具有一对多关系的
教师
学生
表。
Teacher
的表
Id
将用作账号,因此其
Id
编号需要与
Student
分开。我想创建一个
Person
表(包含共享属性,例如
First、Last、Phone、Email
),以减少属性上的冗余<代码>人员也将与
地址
表建立一对多关系

我曾想过尝试使用
教师
学生
继承自
个人
的每个层次结构模型的表,但这样Id集就不会是单独的,我必须在
个人
表内部建立一对多关系。我可以通过代码生成ID,但内部一对多是可行的还是实用的

另一种情况是将
Person
设置为子表,其中教师和
Person
之间为一对一,学生和
Person
之间为一对一,但我不确定如何或是否可能在表上有两个单独的一对一

是否有一种切实可行的方法来做我想做的事情,或者我是否应该不担心冗余,不使用
Person
表?如果我这样做,是否可能与
地址
表(
教师地址
学生地址
)有两个独立的一对多关系?或者一对多(
教师地址
,教师可能有额外的送货地址)和一对一(
学生地址


谢谢

另一种方法是在
人员
角色
表之间建立一对一的关系<代码>教师和
学生
仅仅是这种安排中的角色。一个给定的
角色
可以由许多
实例来完成。

另一种方法是在
角色
表之间建立一对一关系<代码>教师和
学生
仅仅是这种安排中的角色。一个给定的
角色
可以由许多
人员
实例来完成。

您还可以使用IsTeacher标志创建人员表。

您还可以使用IsTeacher标志创建人员表。

我可以看到两种可能性:

第一:让你的学生和老师从基本的人名表继承,不要担心“冗余”。这不是冗余,因为您将一个学生和一个教师而不是一个人与一个人关联,因此在数据库和DOM中,Person表和Person类对师生关系一无所知,它只知道这是一个人。教师和学生关系存储在各自的类型中,而不是个人类型。此外,请按类型查看表格,而不是按等级查看表格。它在数据库中看起来更干净、更清晰,并且您无法在一个表中获得heiarcy中每种类型的所有信息


第二:创建一个表,该表专门保存学生和教师共享的信息,并分别包含与学生和教师表相关的信息。你可以称之为“联系信息”。

我可以看到两种可能性:

第一:让你的学生和老师从基本的人名表继承,不要担心“冗余”。这不是冗余,因为您将一个学生和一个教师而不是一个人与一个人关联,因此在数据库和DOM中,Person表和Person类对师生关系一无所知,它只知道这是一个人。教师和学生关系存储在各自的类型中,而不是个人类型。此外,请按类型查看表格,而不是按等级查看表格。它在数据库中看起来更干净、更清晰,并且您无法在一个表中获得heiarcy中每种类型的所有信息


第二:创建一个表,该表专门保存学生和教师共享的信息,并分别包含与学生和教师表相关的信息。你可以称之为“联系信息”。

作为教师和学生是人的角色,而不是人的类型。 你应该有一张供人使用的桌子,一张桌子教学课程可以说一个人是一门课程的老师(在某些情况下是多位老师),一张桌子辅助课程可以说哪些人是学生。您可能会有人教授一门课程,并协助另一门课程,而这在您的第一个版本中没有正确建模


您还可以为用户创建ContactInformation或ShippingInformation表,以指定其所有数据(有些用户可能有多部电话或电子邮件)

教师和学生都是人的角色,而不是人的类型。 你应该有一张供人使用的桌子,一张桌子教学课程可以说一个人是一门课程的老师(在某些情况下是多位老师),一张桌子辅助课程可以说哪些人是学生。您可能会有人教授一门课程,并协助另一门课程,而这在您的第一个版本中没有正确建模


您还可以为用户创建ContactInformation或ShippingInformation表,以指定其所有数据(有些用户可能有多部电话或电子邮件)

duffymo您是否有一个链接,指向在这种场景中实现角色表的好文章?Thanksduffymo您是否有一个链接,指向在这种场景中实现角色表的好文章?谢谢,我很高兴你能成功。你应该发布你的解决方案。我很高兴它对你有效。你应该发布你的解决方案。