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

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

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

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

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

namespace Company\BlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="Users")
 */
class Users
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", name="user_id")
     * @ORM\GeneratedValue(strategy="AUTO")
     * 
     * @var integer $userId
     */
    protected $userId;

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

Это правильно?

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


person rfc1484    schedule 05.06.2011    source источник
comment
Я (и я думаю, что большинство людей) использовал бы единственное число, потому что оно представляет одного пользователя. Я также использую имена таблиц в единственном числе, потому что я называю их в соответствии с тем, что представляет собой одна строка, но я, вероятно, в меньшинстве в этом вопросе.   -  person Matthew    schedule 05.06.2011


Ответы (4)


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

person Ondřej Mirtes    schedule 05.06.2011

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

person Nev Stokes    schedule 05.06.2011

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

person Bob Baddeley    schedule 05.06.2011

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

person Community    schedule 06.06.2011