2011-08-07 3 views
2

사이트를 Symfony2로 마이그레이션하고 있습니다. 사이트에는 테이블 이름 + "id"규칙에 따라 기본 키 정수에 이름이있는 테이블이 있습니다. 예 : 테이블 "노드"에는 기본 키 "nodeid"가 있습니다.Symfony2/Doctrine 기본 키 이름 지정 우수 사례

반면에 복잡한 쿼리는 읽고 이해하기가 쉽다는 것을 의미합니다. 다른 말로하면 Doctrine이 모든 테이블에 "id"를 사용하려고 할 때마다 항상 고유 한 ID 이름을 쓰는 일이 번거롭기 때문입니다.

Symfony2/Doctrine2에서 기본 키의 이름을 지정하는 가장 좋은 방법이나 표준 규칙이 있습니까? 감사!

+0

? Yml/annotation/xml? – Problematic

+0

주석. 저는 답을 봅니다 - 나는 Doctrine의 엔티티 속성이 다른 이름을 가질 수 있다는 것을 깨닫지 못했습니다. 여전히 실습으로 기본 키가 외래 키로 사용될 때 "id"를 기본 키로 사용하고 테이블 이름 + "_id"(예 : node_id)를 사용하기 시작합니다. 그건 Doctrine의 문서와 일치하는 것 같습니다. 감사! – Acyra

답변

3

엔티티 속성의 이름은 데이터베이스의 열 이름과 완전히 독립적입니다. SELECT n.id FROM Node n; DQL 쿼리에 의해 생산

/** 
* @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 u1.custom_id_name_eg_node_id FROM custom_table_name u1;