使用Doctrine ORM表命名约定

时间:2010-11-04 19:30:19

标签: orm doctrine convention

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

因此表'users'将与使用fk作为单数('user_id')的表相关。

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

例如,我目前有一个名为'categorys'而不是'categories'的表来维持添加's'的惯例。

这是一种明智的做法吗?

2 个答案:

答案 0 :(得分:6)

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

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

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

您会看到用户可以有多个 Phonenumber ,因此在YAML架构中设置了 foreignAlias ,因此它将是 > Phonenumbers 通过 $ user-> Phonenumbers 有效访问。

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

答案 1 :(得分:2)

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

$user->Phonenumbers

...而不是:

$user->Phonenumberss

可以通过别名定制定义。