每个`belongsTo` fileupload和每个fileupload的多个表可以在模型中没有关系吗?

时间:2011-03-24 03:26:48

标签: cakephp model foreign-keys belongs-to has-one

我正在玩一个文件上传表(字段:id, name, size, type)并使用一系列其他表(注释,文件),每个表都有一个外键指向文件上传表中的一个记录(字段:upload_id)。每个系列表(例如,注释,文件)的模型将包括指向文件上载表的belongsTo关系。

这意味着文件上传表将没有外键(多个表指向它),因此除非我为每个其他表都有一个字段(例如note_id,{{},否则外部id字段将不起作用1}}等。该模型不会提及任何关系。

我应该采取另一种方式吗?我想不出一个更有效率的。

1 个答案:

答案 0 :(得分:2)

基本上取决于业务逻辑。

如果您的文件分布在其他表格(注释填充等)之间,那么

上传hasMany Note 上传hasMany Filling

但是,如果每条记录只有一个文件,则会出现这种情况。

如果你有一个笔记或填充有多个文件的情况,那么你需要去HABTM关系或:

Table notes:
id, name, desc ...

Table uploads:
id, name, size, type

Table notes_uploads:
id, note_id, upload_id

Table fillings_uploads:
id, filling_id, upload_id

因此,您将为每个包含文件的实体定义多对多的关系。

我认为第二种方式是更灵活的方式,但实际上取决于要求。