Соглашение об именовании таблиц с Doctrine ORM - PullRequest
7 голосов
/ 04 ноября 2010

Существует ли соглашение об именовании таблиц при использовании Doctrine ORM? Мне нравится называть таблицы множественным числом, но если есть соглашение, я хочу придерживаться его.

Таким образом, таблица 'users' будет связана с таблицами, использующими fk в качестве единственного ('user_id').

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

Например, в настоящее время у меня есть таблица под названием «категории» вместо «категории» для поддержания соглашения о добавлении «s».

Это разумный подход?

Ответы [ 2 ]

6 голосов
/ 04 ноября 2010

Раньше я использовал множественные имена таблиц при использовании своего собственного базового ORM, но я переключился на единичные имена таблиц, когда начал использовать symfony + Propel, а теперь немного Doctrine.Причина этого заключается в именах классов, потому что вы хотите создать пользователя , а не пользователей .

с помощью Doctrine, когда речь идет о коллекциях или отношениях,Вы говорите ему, каким должен быть псевдоним:

http://www.doctrine -project.org / projects / orm / 1.2 / docs / manual / Работа с моделями / en

Вы увидите, что a Пользователь может иметь много Телефонный номер , поэтому foreignAlias ​​ был настроен в схеме YAML, поэтому он будет Номера телефонов эффективный доступ через $ user-> Phonenumbers .

В вашем примере вы установите foreignAlias ​​ равным Categories , сохраняя при этом таблицуи запись с именем Категория .

2 голосов
/ 05 ноября 2010

Соглашение Doctrine заключается в использовании единичных имен для таблиц и моделей, как объясняет первый ответчик, поскольку логически вам нужны такие методы, как:

$user->Phonenumbers

... вместо:

$user->Phonenumberss

Определения можно настроить с помощью псевдонимов.

...