Как лучше всего называть свою «пользовательскую» таблицу? - PullRequest
42 голосов
/ 13 марта 2011

Вот три рекомендации, которым я стараюсь следовать при именовании таблиц:

  • Никогда не называйте таблицу множественным числом (например, «пользователи»)
  • Никогда не называйте таблицу, используя зарезервированныеключевое слово (например, "пользователь")
  • Никогда не ставьте префикс имени таблицы с помощью "tbl" или какого-либо другого префикса типа объекта

Учитывая все это, как вы рекомендуете называтьтаблица, в которой будут храниться имена пользователей?

Ответы [ 4 ]

31 голосов
/ 14 марта 2011

Я согласен, не используйте никакие зарезервированные слова, или цитируемые или заключенные в скобки или экранированные формы зарезервированных слов.

Назовите таблицу пользователей Персона .

Вы можетезаинтересоваться этим ответом и Google для стандарта ИСО 11179 для именования Руководства

8 голосов
/ 13 марта 2011

Обычно я использую что-то вроде участника или учетной записи, в зависимости от приложения. Тем не менее, если вы используете современные инструменты и принципы проектирования (например, уровень абстракции БД или ORM с объектно-ориентированной кодовой базой, которая отделяет бизнес-логику от доступа к данным), то именование таблиц становится довольно неактуальным. Ваши разработчики должны когда-либо получать доступ к базе данных только через четко определенный интерфейс, а не посредством написания от руки SQL, который требует от них знать имя таблицы. Например, вы можете назвать имя учетной записи таблицы, но сопоставить доступ к ней через объект с именем User. Ваши разработчики должны думать не с точки зрения таблиц, а с точки зрения объектов доступа, которые не будут иметь такие же ограничения по именованию:

$user = new User($username);
$user->authenticate($password);
3 голосов
/ 13 марта 2011

Используйте синоним. Какое слово использовать, зависит от того, что именно вы храните в таблице, но account кажется мне хорошей альтернативой. Если вы хотите использовать вариант user, я бы нарушил первое упомянутое вами указание, а не второе или третье: users достаточно распространено, так что несоответствие по сути является мнемоническим.

0 голосов
/ 15 марта 2011

Я использую правила CakePHP, даже когда я не использую каркас:

Имена таблиц по соглашению строчные и множественные с именами таблиц из нескольких слов, разделенных подчеркиванием.Например, имя модели Ingredient предполагает имя таблицы ingredients.Имя модели EventRegistration будет ожидать имя таблицы event_registrations.

...