Блог хеллоуворлдщика

Именование поля с идентификатором


Практически каждый разработчик именует поля для связи с другой таблицей в формате <имятаблицы>_id. Но, вдруг в проекте вы замечаете, что в одном или в нескольких местах совсем не такое именование, а просто <имятаблицы>. Или наоборот, связи нет, а именовано по подобию <имятаблицы>_id. Это связано с тем, что когда-то эти поля имели (или не имели) связи с таблицей, а позже решили вынести все в код (или в таблицу). В итоге получается не очень красиво.

Решить эту проблему можно очень просто следуя одному правилу: "Если поле может содержать только определенный вариант значений, то для такого поля необходимо указать в конце постфикс _id.".

Например, есть поле type, для этого поля определены значения 1, 2, 3. Такому полю необходимо дать имя type_id.

Еще пример, есть поле status, для этого поля определены значения new, used. Такому полю необходимо дать имя status_id.

Вы спросите, "почему?". Ответ прост: все наши заранее определенные значения и есть идентификаторы. Идентификатор не обязательно должен быть только в таблице, он может хранится и в коде, но это идентификатор. Позже, когда вас попросят сделать пользовательские статусы вместо указанных жестко - вы без лишних проблем реализуете запрошенный функционал. Справедливо и обратное. И больше не будет каких-то непонятных именованний, а так же не придется менять в коде имена переменных/свойств, а позже получать кучу ошибок на проде (не все пишут тесты, увы), и сэкономите себе кучу времени.

Но, не нужно добавлять в конец _id для полей, которые используются в качестве флага (true/false). Такие поля должны отражать свою суть по названию без всякого _id в конце. Если вдруг позже окажется, что нужно больше 2х состояний для этого поля, то скорее всего, вы просто неправильно определили его тип изначально.

Например, поле published, для этого поля может быть только два состояния true (да) и false (нет). Для такого поля не нужно добавлять в конце _id.

Определить такие поля тоже очень просто по следующему правилу, "Если на название поля можно ответить односложно да или нет, то такое поле является флагом и для него не нужен постфикс _id.".

Следуя простым правилам количество проблем уменьшится, а масштабируемость увеличится.

share via vkontakte share via facebook share via mailru share via odnoklassniki share via twitter

Комментарии [0]

Нет комментариев.