Asp.net mvc 3 表上的多个关系
SQL Server 2012 MVC3 EF4.3.1代码优先项目 我有一个具有一对多关系的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,但内部一对多是可行的还是实用
教师
和学生
表。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您是否有一个链接,指向在这种场景中实现角色表的好文章?谢谢,我很高兴你能成功。你应该发布你的解决方案。我很高兴它对你有效。你应该发布你的解决方案。