Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 数据库与多个表的关系和实体框架中的表示_Database_Entity Framework_Database Design_Data Modeling - Fatal编程技术网

Database 数据库与多个表的关系和实体框架中的表示

Database 数据库与多个表的关系和实体框架中的表示,database,entity-framework,database-design,data-modeling,Database,Entity Framework,Database Design,Data Modeling,第2部分问题: 1st 考虑到以下场景,设置表/关系结构的最佳方法是什么:我有许多表存储不同类型的数据(即:书籍、电影、杂志-每种都是不同的表),然后有一个表存储可以链接到任何表类型的评论。因此,review表中的一行可以链接到books或Magazine表 我现在得到的是第三个表,它定义了可用的表并给它们一个ID号。从评论到书籍,没有真正的关系存储。这是最好的方法吗 第二名 如何在实体框架中表示假关系?我可以做一个将3个表连接起来的查询,但有没有办法在表映射中对其建模?这实际上取决于您希望如何

第2部分问题:

1st 考虑到以下场景,设置表/关系结构的最佳方法是什么:我有许多表存储不同类型的数据(即:书籍、电影、杂志-每种都是不同的表),然后有一个表存储可以链接到任何表类型的评论。因此,review表中的一行可以链接到books或Magazine表

我现在得到的是第三个表,它定义了可用的表并给它们一个ID号。从评论到书籍,没有真正的关系存储。这是最好的方法吗

第二名
如何在实体框架中表示假关系?我可以做一个将3个表连接起来的查询,但有没有办法在表映射中对其建模?

这实际上取决于您希望如何访问/查看评论


我会为每种revew实现一个表:一个用于书籍,一个用于电影,等等,每个表都有一对多的关系(书籍和书评之间,电影和电影评论之间,等等)。如果你需要在一个表中的所有评论,创建一个视图,它选择所有的评论与工会所有。

< P>另一种方式来考虑它是考虑书籍,电影,杂志作为子类型的审查项目。他们可能有一些共同的特征——如果不了解你的问题领域,就很难确定。这种方法的优点是,您可以将审查建模为可审查的_项的依赖项,从而为审查提供一个单独的表和一个可执行的关系

编辑


是的,这就像在OO范式中扩展类型一样。您并没有说您打算使用哪种风格的数据库,而是展示了如何在SQLServer中使用它。完全相同的实现也适用于Oracle,我希望它也适用于大多数其他RDBMS产品。

您可以包括一个“可查看”的概念,可以是一本书或一本杂志,也可以是,“评论”可以指的是什么,或者你可以有一个“评论”的概念,它可以是指一本书的“书评”,也可以是指一本杂志的“杂志评论”,或者是指一份报纸的“报纸评论”


因为真正的关系系统是不存在的,所以在数据库设计中必须明确说明这两种抽象中的一种。(除非您愿意实现大量触发器代码。)

那么这类似于为可查看的项目创建基类,并为书籍和电影扩展它?