我正在创建一个MVC项目,并决定使用EF代码第一种方法实现数据库。我一直在阅读教程here。
在教程中,他们有一个学生表和一个学生地址表,它具有一对一的关系。
我觉得令人困惑的是,他们在学生地址表中有一个StudentID的外键,在我看来,在Student表中有一个StudentAddressID的外键更有意义。我的理由是,如果我想看看哪个地址与某个学生有关,我更有可能先找到学生,然后查看地址ID,而不是相反。 所以我的问题是为什么他们这样做了,甚至重要吗?
答案 0 :(得分:1)
学生可以拥有与之相关的地址。因此,如果您认为这种方式更符合逻辑,那么学生表中会有一个额外的列不会一直使用,因为如果学生没有地址,那么您在分配给StudentAddressID的列中不会存储任何内容在学生表中,所以这样你就浪费了存储空间。 此外,为两个表创建一个主键更简单,而不是为地址表设置不同的ID。