使用 Doctrine ORM 时是否有命名表的约定?我喜欢用复数命名表,但如果有约定,我想坚持下去。
因此,表“用户”将与使用 fk 作为单数(“用户 ID”)的表相关。
是否有最佳实践(使用单数或复数表名),如果是后者,这如何适用于复数不是添加“s”的简单情况的表。
例如,我目前有一个名为“categorys”而不是“categories”的表来维护添加“s”的约定。
这是一个明智的做法吗?
使用 Doctrine ORM 时是否有命名表的约定?我喜欢用复数命名表,但如果有约定,我想坚持下去。
因此,表“用户”将与使用 fk 作为单数(“用户 ID”)的表相关。
是否有最佳实践(使用单数或复数表名),如果是后者,这如何适用于复数不是添加“s”的简单情况的表。
例如,我目前有一个名为“categorys”而不是“categories”的表来维护添加“s”的约定。
这是一个明智的做法吗?
我曾经在使用自己的基本 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的表和记录。
正如第一个回答者解释的那样,Doctrine 约定是对表和模型使用单数名称,因为从逻辑上讲,您需要以下方法:
$user->Phonenumbers
... 代替:
$user->Phonenumberss
可以通过别名自定义定义。