我正在玩一个文件上传表(字段:id, name, size, type
)并使用一系列其他表(注释,文件),每个表都有一个外键指向文件上传表中的一个记录(字段:upload_id
)。每个系列表(例如,注释,文件)的模型将包括指向文件上载表的belongsTo关系。
这意味着文件上传表将没有外键(多个表指向它),因此除非我为每个其他表都有一个字段(例如note_id
,{{},否则外部id字段将不起作用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
因此,您将为每个包含文件的实体定义多对多的关系。
我认为第二种方式是更灵活的方式,但实际上取决于要求。