Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
Sql server 实体框架代码优先方法-一对一关系_Sql Server_Entity Framework_Database Design_Ef Code First - Fatal编程技术网

Sql server 实体框架代码优先方法-一对一关系

Sql server 实体框架代码优先方法-一对一关系,sql-server,entity-framework,database-design,ef-code-first,Sql Server,Entity Framework,Database Design,Ef Code First,我正在创建一个MVC项目,并决定使用EF代码优先的方法实现数据库。我一直在看教程 在教程中,它们有一个学生表和一个学生地址表,这两个表之间有一对一的关系 我发现令人困惑的是,在学生地址表中有一个外键StudentID,在我看来,在学生表中有一个外键studentaddress更有意义。我的推理是,如果我想知道哪个地址与某个学生有关,我更可能先去找该学生,查看地址ID,而不是相反。 所以我的问题是,他们为什么这样做,这有关系吗 学生可能有与其相关联的地址。因此,如果您认为这是一种更符合逻辑的方式

我正在创建一个MVC项目,并决定使用EF代码优先的方法实现数据库。我一直在看教程

在教程中,它们有一个学生表和一个学生地址表,这两个表之间有一对一的关系

我发现令人困惑的是,在学生地址表中有一个外键StudentID,在我看来,在学生表中有一个外键studentaddress更有意义。我的推理是,如果我想知道哪个地址与某个学生有关,我更可能先去找该学生,查看地址ID,而不是相反。
所以我的问题是,他们为什么这样做,这有关系吗

学生可能有与其相关联的地址。因此,如果您认为这是一种更符合逻辑的方式,那么在Student表中会有一个额外的列,它不会一直被使用,因为如果Student没有地址,那么您就不会在Student表中分配给StudentAddressID的列中存储任何内容,因此这种方式会浪费存储空间。
另外,两个表都有一个主键比地址表有不同的ID更简单

你能添加你的上下文和模型类吗?我还没有,我的问题与教程有关。你所说的很有意义,我没有这样想,所以谢谢,我暂时不把它作为公认的答案,只是看看其他人会怎么说。