【问题标题】:Table naming convention with Doctrine ORM使用 Doctrine ORM 的表命名约定
【发布时间】:2011-05-05 06:28:22
【问题描述】:

在使用 Doctrine ORM 时是否有命名表的约定?我喜欢用复数命名表格,但如果有约定,我想坚持下去。

因此表“用户”将与使用 fk 作为单数 (“user_id”) 的表相关。

对此是否有最佳做法(使用单数或复数表名),如果是后者,这如何适用于复数不是添加“s”的简单情况的表。

例如,我目前有一个名为“categorys”而不是“categories”的表来维护添加“s”的约定。

这是一个明智的做法吗?

【问题讨论】:

    标签: orm doctrine convention


    【解决方案1】:

    在使用我自己的基本 ORM 时,我曾经使用复数表名,但当我开始使用 symfony + Propel 和现在的一点点 Doctrine 时,我切换到了单数表名。这样做的原因是类名,因为您想创建一个 User 而不是 Users

    使用 Doctrine,当涉及到集合或关系时,你告诉它别名应该是什么:

    http://www.doctrine-project.org/projects/orm/1.2/docs/manual/working-with-models/en

    你会看到一个 User 可以有很多 Phonenumber 所以在 YAML 模式中设置了一个 foreignAlias 所以它会是 电话号码通过$user->电话号码有效访问。

    在您的示例中,您将 foreignAlias 设置为 Categories,同时保持名为 Category 的表和记录。

    【讨论】:

    • 感谢您的意见。我会等一天左右,看看我是否得到任何其他答案,然后再将你标记为正确。
    【解决方案2】:

    Doctrine 约定是为表和模型使用单数名称,正如第一个回答者所解释的那样,因为从逻辑上讲,您需要以下方法:

    $user->Phonenumbers
    

    ...而不是:

    $user->Phonenumberss
    

    可以通过别名自定义定义。

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      相关资源
      最近更新 更多