0

Существуют различные подходы к соглашениям об именах в Primary Key и Foreign Key в MVC, и я хотел бы уточнить, какой из них, скорее всего, близок к стандартному соглашению, даже если есть почти нет разницы между ними. Ниже приведен пример кода, использующего две таблицы: Student и Country.Соглашение о присвоении первичного ключа/внешнего ключа в MVC

Конвенция I: Я бы предпочел этот подход, так как я не хочу повторять имена таблиц в каждом свойстве PK.

Student Таблица

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

Страна Таблица

ID => Primary Key property 
// other properties 


Конвенция II:

Student Таблица

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

Страна Таблица

CountryId => Primary Key property 
// other properties 


В дополнение к этому вопросу я также хочу знать, что если есть разница с использованием ID или Id, как Primary Key в Entity Class. Есть идеи?

+0

Что не так: 'PK_StudentId' и' FK_CountryId'? – Hackerman

+0

@ Хакерман Посмотрите на сообщение Криса и посмотрите, как должен быть ответ! .. –

+0

Это действительно хороший ответ ... мой был просто комментарием :) – Hackerman

ответ

1

Это суждено быть закрытым как самоуверенное, но я бы пошел с первым соглашением. Это больше огорчает моя, чем ничего, но это ошибки меня нет конца, когда я вижу такие вещи, как:

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

Ну, конечно, это идентификатор студента и имя ученика. Это название класса. Тогда ваш API выглядит как student.StudentName, который просто читается смешно.

Длинный и короткий, если свойство является неотъемлемой частью класса, не префикс его с именем класса. У вас должен быть API, например student.Id и student.Name.

Что касается внешних ключей, вы должны префикс имени класса, потому что это говорит вам об отношениях. Что-то вроде student.CountryId очень четко указывает, что это иностранный ключ для студенческой страны. В программировании, читабельности и самодокументировании API являются первостепенными.

+0

Как насчет идентификатора с идентификационной частью? Какая из них лучше? –

+0

Я иду с 'Id', просто потому, что я думаю, что это следует за паскаль-корпусом более подходящим образом. Тем не менее, это немного стирает.«ID», очевидно, является аббревиатурой «Идентификатор», и если бы вы использовали все слово, это было бы «CountryIdentifier», а не «CountryIDENTIFIER». Тем не менее, 'ID', даже если это не акрионим, обрабатывается как аббревиатура много раз. Это действительно сводится к тому же аргументу между использованием чего-то типа «HTMLClass» или «HtmlClass». ASP.NET имеет тенденцию отдавать предпочтение последней форме, поэтому я следую этому соглашению с 'Id'. –