我不确定什么是正确的标题。这是我的问题:
有几种型号,如:
公司
人(与用户不同)
用户
等
其中一些需要附加一个或多个文件。
所以我创建了一个 UploadedFile 模型。如何将其链接到上述任何型号? 有时 UploadedFile 属于公司。 有时 UploadedFile 属于人
如果 UploadedFile 属于公司,则它不属于人等其他人。
所有 UploadedFile 属于用户(因为他们上传了这些内容,我需要跟踪上传的内容)
HABTM在这里工作吗?还有其他更好的方法吗?
非常感谢您的帮助。
最好的问候,
贝。
答案 0 :(得分:1)
将UploadedFile belog设为所有三个(用户,公司和个人):
var $belongsTo = array(
'User' => array('className' => 'User','foreignKey' => 'user_id'),
'Company' => array('className' => 'Company','foreignKey' => 'company_id'),
'Person' => array('className' => 'Person','foreignKey' => 'person_id'));
由于它始终属于用户,因此user_id将始终具有值。
然后,您将检查是否已设置company_id或是否设置了person_id,并确定该文件属于哪个。我有一个像这样工作的应用程序。这有点辛苦,但我找不到任何其他解决方案
另一个好主意是尝试将Person和Company组合在一个表中,只需要一个标志来区分这两者。