Соглашение о произвольном присвоении имен (бизнес-объекты)
Вопрос
Хорошо, ты делаешь Business.Name
или Business.BusinessName
SubCategory.ID
или SubCategory.SubCategoryID
А как насчет вашей базы данных?
Почему?
Я разрываюсь и с тем, и с другим.Хотелось бы, чтобы там был "правильный ответ".
Решение
Основным недостатком использования ID, Name и т.д. Является то, что вы должны указывать их с именем таблицы, если вы пишете SQL-соединение, которое перекрывает две таблицы.
Несмотря на это, я нахожу гораздо более кратким и читабельным просто использовать ID и Name - ваш код и таблицы будут гораздо легче "проплывать" мимо глаз.Проще набирать текст и меньше избыточности.И введите "ВЫБЕРИТЕ компанию".Название ОТ ...в SQL -запросе на самом деле нет ничего более сложного , чем ввести SELECT BusinessName FROM ...
В общем, если я обнаруживаю, что повторяю семантическую информацию, это побуждает меня искать способы устранить ее или, по крайней мере, понять, почему она повторяется.Это может быть в малом масштабе (имена атрибутов) или в большом масштабе (модели поведения или общие структуры классов).
Другие советы
Единственный "правильный" ответ - быть последовательным.Заранее решите, какой из них вы будете использовать в проекте, и придерживайтесь его.
Для очень распространенных свойств, таких как "Name" и "ID", соглашение, которое я использовал, заключается в том, чтобы не указывать имя объекта в поле.Для получения более необычных свойств я указываю имя объекта.
Это решение по соглашению об именовании, но я не пожалел о проектах, где это соглашение, если вы вводите имя объекта для каждого идентификатора, оно в конечном итоге кажется слишком подробным.
мы идентифицируем все, что является первичным ключом.Выражение SubCategory.SubCategoryID кажется излишним,
Возможно, я не прав, но я думаю, что Id - блюдо вкуснее.
thing.id
потому что, если вы собираетесь написать какой-либо отражающий материал, который имеет дело с вашими объектами и нуждается в первичном ключе, проще узнать его везде, чем пытаться определить его с помощью формулы.
Что касается другого, то это общее предпочтение, и я не вижу никаких реальных последствий, кроме времени, потраченного впустую на ввод других символов, и его .net, поэтому на самом деле никто все равно не вводит пространства имен.