Doctrine ORM中的表命名规则

11

使用Doctrine ORM时,是否有关于命名表格的约定?我喜欢用复数来命名表格,但如果有约定,我希望遵循它。

例如表格'users'将与使用fk作为单数形式('user_id')的表格相关联。

在使用单数或复数表格名称时,是否有最佳实践呢?如果采用后者,则如何适用于复数不仅仅是添加's'的表格?

例如,我目前有一个名为'categorys'而不是'categories'的表格,以保持添加's'的惯例。这种方法合理吗?

2个回答

8

我曾经在使用自己的基本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->Phonenumbers有效地访问Phonenumbers

在您的示例中,您将设置foreignAliasCategories,同时保留表和记录命名为Category


谢谢您的回答。在标记您的答案正确之前,我会再等一天左右看看是否有其他答案。 - calumbrodie

3
Doctrine的约定是对于表和模型使用单数形式,正如第一个回答者所解释的那样,因为从逻辑上讲,您需要像这样的方法:
$user->Phonenumbers

使用...而不是:

$user->Phonenumberss

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接