Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 SQL Server/Entity Framework Core:父项使用子项作为外键进行搜索是否更好?_Database_Database Design_Entity Framework Core - Fatal编程技术网

Database SQL Server/Entity Framework Core:父项使用子项作为外键进行搜索是否更好?

Database SQL Server/Entity Framework Core:父项使用子项作为外键进行搜索是否更好?,database,database-design,entity-framework-core,Database,Database Design,Entity Framework Core,我有以下两种型号 公开课小组 { 公共int Id{get;set;} 公共虚拟团队地址团队地址{get;set;} } 公共类团队地址 { 公共int Id{get;set;} [外国团队] public int TeamId{get;set;} 公共虚拟团队{get;set;} } 有些季节,TeamAddress本身必须有一把钥匙 在本例中,TeamAddress具有团队的密钥,但团队没有TeamAddress的密钥 使用EF Core,我不需要关心它 但我很好奇。团队没有团队地址的ID。

我有以下两种型号

公开课小组 { 公共int Id{get;set;} 公共虚拟团队地址团队地址{get;set;} } 公共类团队地址 { 公共int Id{get;set;} [外国团队] public int TeamId{get;set;} 公共虚拟团队{get;set;} } 有些季节,TeamAddress本身必须有一把钥匙

在本例中,TeamAddress具有团队的密钥,但团队没有TeamAddress的密钥

使用EF Core,我不需要关心它

但我很好奇。团队没有团队地址的ID。当从团队类开始时,搜索选择查询不是很方便吗?因为我认为团队必须使用“加入”来查找团队地址

选择* 作为T队的队员 作为T.Id上的TA的内部联接TeamAddress=TA.TeamId;
如果团队ID为TeamAddress,是否会更好???

如果团队ID为TeamAddress,是否会更好??-不因为一个团队很可能有多个团队地址,所以您希望在团队实体中存储其中一个地址的ID??设置正确-您有一个ID为的团队,任何TeamAddress都将引用该Team.ID,从而建立1:n关系。这是它应该是的方式,这是好的方式!通常,一对一关系中的依赖关系是用所谓的共享主键关联建模的,其中没有单独的FK,但PK也是FK。正如你所看到的,在这个设计中,你称之为父的主体不需要一个连接来获得子PK,因为它和它自己的PK是一样的。仅当依赖项具有单独的FK(如示例中所示)时,才需要联接。在这两种情况下,委托人都不能将FK设置为dependent,因为这违反了关系数据原则。@marc_s我如何从TeamAddress和Antival搜索团队?@IvanStoev我想通过他们身边的对象访问他们。比如“Team.TeamAddress.~”和“TeamAddress.Team.~”