在CakePHP的数据库中定义关系

时间:2014-07-30 04:07:24

标签: php mysql cakephp cakephp-2.0 cakephp-model

我在CakePHP中尝试了一个示例项目。它取自cakePHP文档。它共有4个表,其中两个列在这里。

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL UNIQUE,
    password CHAR(40) NOT NULL,
    group_id INT(11) NOT NULL,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE posts (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    user_id INT(11) NOT NULL,
    title VARCHAR(255) NOT NULL,
    body TEXT,
    created DATETIME,
    modified DATETIME
);

正如您所见,users表中的id作为user_id形式的外键添加到posts表中。但是在样本中没有定义关系。我的意思是通常我们会通过添加约束(在我的情况下使用phpMyAdmin的Relation View)将user_id显式定义为外键。但这并没有在这里完成,或者我们没有被指示这样做。当使用Cake Bake console来烘焙我们的Models时,我们是否需要这些外键约束,或者cakephp会自动将它们弄清楚吗?

1 个答案:

答案 0 :(得分:1)

约定优于配置

Cakephp会自动为您计算出来,但您必须遵循naming conventions