我正在为我们的图书馆申请。
我们有不同的文件类型(公报,书籍,报告,报纸剪报等)
我开始为Gazettes创建一个模型,其中包括名称,年份,数量,法规/法律类型,参考等字段。在处理文件上传时,我与文件建立了关系。
因此,我们的想法是为所有文档设置一个Resource
类,并为每个文档类型设置一个模型,因为字段不同。报纸剪报将body, newspaper, date and page
作为字段。书籍会有很多,比如title, subtitle, author, publisher, genre, ISBN, hard/soft
。
我应该能够将文件链接到每个文件,无论是作为文档的数字版本还是作为"相关的"。
我在考虑文件和资源模型之间的多对多关系,但我如何仍然包含每个子模型的不同字段。我不必单独为每种文档类型建立关系(gazette_file和book_file和report_file),尤其是因为它们应该是可互换的。
我使用什么样的模型/关系结构?
有一个几乎类似的问题Laravel 5 - defining relationships,但重点不同。提供的答案并未考虑不同的领域。
答案 0 :(得分:0)
我认为你正在寻找一种多态关系。
https://laravel.com/docs/5.5/eloquent-relationships#polymorphic-relations
因此,您的文件模型将具有“id”字段和与文件关联的模型相关的“类型”。
E.g。
Book with the ID of 99
Files Model
id = 1
related_id = 99
related_type = book
file_name = "yourname.jpg"
etc