2015-02-05 75 views
1

CakePHP中正确的复数/单数表命名约定是什么?CakePHP - 表命名约定(超过一个表)

此:
帖子
posts_pictures
posts_picture_captions < - 不知道这

或者这样:
帖子
posts_pictures
posts_pictures_captions < - 不知道这

我知道CakePHP希望按字母顺序排列表,但在这个问题上应该忽略它。请只考虑复数/单数表命名。

回答

-1

从CakePHP的书:

Model类名是单数和驼峰。 Person,BigPerson和 ReallyBigPerson都是传统型号名称的例子。

对应于CakePHP模型的表名是复数,并强调 。上述模型 的基础表分别为people,big_people和really_big_people。

您可以使用实用程序库Inflector检查单词的单数/复数 。有关更多信息,请参阅Inflector。

带有两个或更多单词的字段名称为下划线:first_name。

hasMany,belongsTo或hasOne关系中的外键默认识别为 后跟_id的(单数)名称。所以如果贝克有许多蛋糕,蛋糕桌 通过baker_id外键引用贝克表。对于其名称包含多个单词的类似 category_types的表,外键 应为category_type_id。

http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html#model-and-database-conventions

所以刚开始,你的 “posts_pictures” 表应被命名为 “post_pictures”。 因此,两者都不正确。根据蛋糕命名惯例的正确名称是“post_picture_captions”。

+1

您需要完成报价页面。 '在模型之间的hasAndBelongsToMany(HABTM)关系中使用的连接表应该按照它们将要连接的模型表命名,并按照字母顺序排列(apples_zebras而不是zebras_apples)。“因此,如果posts_pictures是JOIN表,那么标准是正确的(假设按照OP,字母顺序无关紧要)。 – AgRizzo 2015-02-05 15:03:48

+0

这不是一个HABTM关系,它只有一个hasMany而不是更多的表。 – TatzyXY 2015-02-06 09:07:32