Соглашение об именовании: единственное или множественное число для классов, описывающих сущности в PHP

#php #orm #naming-conventions #doctrine-orm #entities

#php #orm #соглашения об именовании #доктрина-orm #сущности

Вопрос:

Я думаю, что стандартной практикой именования таблиц в MySQL является использование имен во множественном числе.

Классы, ссылающиеся на эти таблицы, также должны быть множественными?

Например, представьте, что у вас есть таблица с именем Users, которая используется для целей аутентификации.

Эта таблица была бы описана в классе сущностей более или менее подобным образом с использованием doctrine ORM:

 namespace CompanyBlogBundleEntity;

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 * @ORMTable(name="Users")
 */
class Users
{
    /**
     * @ORMId
     * @ORMColumn(type="integer", name="user_id")
     * @ORMGeneratedValue(strategy="AUTO")
     * 
     * @var integer $userId
     */
    protected $userId;

    /**
     * @ORMColumn(type="string", length="255", name="first_name")
     * 
     * @var string $userName
     */
    protected $userName;
    ...
}
  

Правильно ли это?

Или класс «Users» должен называться в единственном числе («Пользователь»)?

Комментарии:

1. Я (и я думаю, что большинство людей) использовал бы единственное число, потому что оно представляет одного пользователя. Я также использую имена в единственном числе для таблиц, потому что я называю их в честь того, что представляет одна строка, но в этом я, вероятно, в меньшинстве.

Ответ №1:

Класс, представляющий одну строку базы данных (сущность), должен иметь единственное имя. Доктрина 2 поведение по умолчанию заключается в том, чтобы называть таблицы базы данных одинаково. Вы можете перенастроить его в каждой аннотации @Table, если хотите, но я предлагаю вам придерживаться соглашений об именовании Doctrine — единственное имя для таблицы базы данных также приемлемо.

Ответ №2:

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

Ответ №3:

В базе данных они во множественном числе, потому что это таблица, в которой их много; таблица, в которой много пользователей. Как объект, это уникальная вещь; единственный пользователь. Обычно я сохраняю свои классы в единственном числе.

Ответ №4:

Я также подписываюсь на использование имен таблиц с именем в единственном числе, потому что строка представляет один элемент таблицы точно так же, как объект представляет один экземпляр класса. Единственными исключениями могут быть случаи, когда каждая строка таблицы содержит, например, сериализованные (или эквивалентные) элементы, т.е. «соседей» по местоположению.