MVC中的主键/外键命名约定

时间:2016-06-23 21:28:28

标签: asp.net-mvc asp.net-mvc-4 foreign-keys naming-conventions primary-key

Primary Key中有Foreign KeyMVC命名约定的某种不同方法,我想澄清哪一种最有可能接近标准惯例如果他们之间几乎没有差别。下面是一个示例代码,使用两个名为StudentCountry的表。

惯例I:我更喜欢这种方法,因为我不想在每个PK属性上重复表名。

学生表

ID => Primary Key property
CountryId => Foreign Key property

国家/地区表

ID => Primary Key property
// other properties


第二号公约:

学生表

StudentId => Primary Key property
CountryId => Foreign Key property

国家/地区表

CountryId => Primary Key property
// other properties


除了此问题之外,我还想知道如果ID中使用IdPrimary Key作为Entity Class存在差异。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这注定会被视为自以为是,但我会选择第一个约定。这更像是我的一个宠儿,但是当我看到像这样的东西时,它会让我感到不安:

public class Student
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }
    ...
}

嗯,当然 ,这是学生的身份和学生的名字。那是班级的名字。然后,您的API看起来像student.StudentName,只是看起来很荒谬。

长和短,如果属性是类的内在属性,请不要在类前面添加前缀。您应该拥有student.Idstudent.Name等API。

说到外键时,在其前面添加类名,因为它会告诉您关系。像student.CountryId这样的东西非常清楚地表明这是学生国家的外键。在编程中,可读性和自我文档化的API是至关重要的。