Лучшая практика именования первичных ключей Symfony2/Doctrine

Я переношу сайт на Symfony2. На сайте есть таблицы, в которых целое число первичного ключа имеет имя в соответствии с соглашением: имя таблицы + «id». Например. Таблица «Узел» имеет первичный ключ «nodeid».

С одной стороны, это означает, что сложные запросы легче читать и понимать. С другой стороны, довольно хлопотно все время писать уникальное имя идентификатора, когда Doctrine хочет использовать «id» для каждой таблицы.

Существует ли передовая практика или стандартное соглашение для именования первичных ключей в Symfony2/Doctrine2? Спасибо!


person Acyra    schedule 07.08.2011    source источник
comment
Что вы используете для конфигурации сущности? Yml/аннотация/xml?   -  person Derek Stobbe    schedule 07.08.2011
comment
Аннотация. Я вижу ответ. Я не понимал, что свойство сущности Doctrine может иметь другое имя. Тем не менее, на практике я собираюсь начать использовать id в качестве первичного ключа, а затем имя таблицы + _id (например, node_id), когда этот первичный ключ используется в качестве внешнего ключа. Кажется, это совпадает с документацией Doctrine. Спасибо!   -  person Acyra    schedule 08.08.2011


Ответы (1)


Имя свойства объекта полностью не зависит от имени столбца в базе данных.

/**
 * @orm:Entity()
 * @orm:Table(name="custom_table_name")
 */
class Node {
    /** 
     * @orm:Id @orm:Column(type="integer", name="custom_id_name_eg_node_id")
     * @orm:GeneratedValue(strategy="AUTO")
     */
    protected $id;
}

SQL-запрос, созданный SELECT n.id FROM Node n; запросом DQL:

SELECT u1.custom_id_name_eg_node_id FROM custom_table_name u1;
person Crozin    schedule 07.08.2011