2011-08-07 5 views
2

Je migre un site vers Symfony2. Le site a des tables où l'entier de la clé primaire a un nom, suivant la convention du nom de la table + "id". Par exemple. La table "Node" a la clé primaire "nodeid". D'une part, cela signifie que les requêtes complexes sont plus faciles à lire et à comprendre. D'un autre côté, c'est un peu compliqué d'écrire un nom d'identifiant unique tout le temps, quand Doctrine veut utiliser "id" pour chaque table.Meilleure pratique pour nommer les clés primaires Symfony2/Doctrine

Existe-t-il une meilleure pratique ou une convention standard pour nommer les clés primaires dans Symfony2/Doctrine2? Merci!

+0

Qu'est-ce que vous utilisez pour la configuration de l'entité? Yml/annotation/xml? – Problematic

+0

Annotation. Je vois la réponse-- Je n'ai pas réalisé que la propriété d'entité de Doctrine peut avoir un nom différent. Cependant, en pratique, je vais commencer à utiliser "id" comme clé primaire, puis le nom de table + "_id" (par exemple node_id) lorsque cette clé primaire est utilisée comme clé étrangère. Cela semble correspondre à la documentation de Doctrine. Merci! – Acyra

Répondre

3

Le nom de la propriété d'entité est complètement indépendant du nom de la colonne dans la base de données.

/** 
* @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; 
} 

requête SQL produit par SELECT n.id FROM Node n; requête DQL:

SELECT u1.custom_id_name_eg_node_id FROM custom_table_name u1; 
Questions connexes