Database design CakePHP:属于多个其他人的模型,一次一个

Database design CakePHP:属于多个其他人的模型,一次一个,database-design,cakephp,polymorphism,Database Design,Cakephp,Polymorphism,我有三个表:用户、课程和文档。我想上传文件到用户以及课程,所以我需要两个belongsTo关系的文件模型。有些属于一种模式,有些属于另一种模式 有没有一个简单的解决方案来构建这些关系 如何设置添加操作 我知道我可以设置两个联接表并使用HABTM,但这感觉不对。文档只属于另一个项目。此外,如果需要,我希望能够将关系扩展到更多的模型。您正在寻找的是多态性。基本上,您不会通过单个other\u model\u id字段将模型与固定的other模型相关联,而是跟踪两个字段:other\u model\u

我有三个表:用户、课程和文档。我想上传文件到用户以及课程,所以我需要两个belongsTo关系的文件模型。有些属于一种模式,有些属于另一种模式

有没有一个简单的解决方案来构建这些关系

如何设置添加操作


我知道我可以设置两个联接表并使用HABTM,但这感觉不对。文档只属于另一个项目。此外,如果需要,我希望能够将关系扩展到更多的模型。

您正在寻找的是多态性。基本上,您不会通过单个other\u model\u id字段将模型与固定的other模型相关联,而是跟踪两个字段:other\u model\u class和other\u model\u foreign\u key。这样,您就可以将文档与class:User,id:42(一种情况下)和class:Course,id:42(另一种情况下)关联起来。这里有一个,这应该是一个很好的起点。

您要寻找的是多态性。基本上,您不会通过单个other\u model\u id字段将模型与固定的other模型相关联,而是跟踪两个字段:other\u model\u class和other\u model\u foreign\u key。这样,您就可以将文档与class:User,id:42(一种情况下)和class:Course,id:42(另一种情况下)关联起来。这是一个很好的开始。

+1这是一个非常有效的强大行为。我已经在几个项目中成功地使用了它。请参见CakePHP2+1的相关问题这是一个功能强大的行为,效果非常好。我已经在几个项目中成功地使用了它