CakePHP数据库命名约定

时间:2015-06-23 18:06:36

标签: sql cakephp naming-conventions

我读过CAKEPHP公约。 所以我从错误的约定改为右边。

但是我仍然不确定我是否正确命名我的ID,因为现在我的模型仍然需要使用“$ primaryKey”覆盖删除方法。

Model: EventDate 
Controller: EventDatesController 
Database Table: event_dates
event_dates ID : event_date_id 

其次,在我更改表col_id名称后,我的编辑方法查询主键的Where子句仍然是旧的主键名。尝试删除缓存但仍无法正常工作。

SQL Query: SELECT `EventDate`.`event_date_id`, `EventDate`.`event_date`, `EventDate`.`Created`, `EventDate`.`modified` FROM `fyp_seatmanagment`.`event_dates` AS `EventDate` WHERE `EventDate`.`eventdate_id` = '65' LIMIT 1

2 个答案:

答案 0 :(得分:4)

据我所知,主键的命名约定只是id。因此,您的event_dates ID只有id而不是event_date_id

到你的第二部分: 您将自己的ID命名为event_date_id,但在where子句中查找eventdate_id。所以你忘记了_。如果您将主键更改为id(请参见上文),请不要忘记修改您的主语。

答案 1 :(得分:2)

Cake的命名约定使用id作为主键。对于外键,使用前缀为奇异蛇形相关表名的_id

因此,对于您的EventDate模型,您的主要密钥必须为id

作为外键的示例,如果EventData属于Event模型,则外键将为event_id

在您的示例中,您已经混淆了主键和外键,即使您尝试覆盖默认值,也会导致各种令人头疼的问题。

您可以在文档中的Cake's naming conventions上阅读更多内容。