2011-08-07 24 views
2

我正在將網站遷移到Symfony2。該站點具有主鍵整數具有名稱的表,遵循表名+「id」的約定。例如。表「節點」具有主鍵「nodeid」。命名Symfony2/Doctrine主鍵的最佳實踐

一方面,這意味着複雜的查詢更容易閱讀和理解。另一方面,當Doctrine想要爲每個表使用「id」時,始終寫一個唯一的id名是一件麻煩事。

在Symfony2/Doctrine2中是否有命名主鍵的最佳做法或標準慣例?謝謝!

+0

?陽明海運/註解/ XML? – Problematic

+0

註釋。我看到了答案 - 我沒有意識到,學說的實體財產可以有不同的名稱。不過,作爲一種實踐,我將開始使用「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;