【问题标题】:Best Practice for Naming Symfony2/Doctrine Primary Keys命名 Symfony2/Doctrine 主键的最佳实践
【发布时间】:2011-08-07 13:47:37
【问题描述】:

我正在将一个站点迁移到 Symfony2。该站点具有主键整数具有名称的表,遵循表名+“id”的约定。例如。表“节点”具有主键“nodeid”。

一方面,这意味着复杂的查询更易于阅读和理解。另一方面,当 Doctrine 想为每个表使用“id”时,一直编写唯一的 id 名称有点麻烦。

是否有在 Symfony2/Doctrine2 中命名主键的最佳实践或标准约定?谢谢!

【问题讨论】:

  • 实体配置用什么? yml/注解/xml?
  • 注解。我看到了答案——我没有意识到 Doctrine 的实体属性可以有不同的名称。尽管如此,作为一种实践,我将开始使用“id”作为主键,然后在将该主键用作外键时使用表名 +“_id”(例如 node_id)。这似乎与 Doctrine 的文档相匹配。谢谢!

标签: doctrine-orm symfony


【解决方案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;
}

SELECT n.id FROM Node n;DQL查询产生的SQL查询:

SELECT u1.custom_id_name_eg_node_id FROM custom_table_name u1;

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2017-09-29
    • 2014-06-21
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多