10

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

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

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

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

这是一个明智的做法吗?

4

2 回答 2

7

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

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

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

您会看到一个用户可以有很多电话号码,因此在 YAML 模式中设置了一个foreignAlias,因此它将是通过$user->Phonenumbers有效访问的电话号码。

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

于 2010-11-04T20:00:15.747 回答
2

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

$user->Phonenumbers

... 代替:

$user->Phonenumberss

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

于 2010-11-05T18:08:48.503 回答