与教义建立一对多多态关系
让我首先概述一下这个场景。我有一个Note对象,可以分配给许多不同的对象
- 一本书可以有一个或多个“笔记”。
- 一个图像可以有一个或多个“注释”。
- 一个地址可以有一个或多个注释。
我设想数据库的样子是这样的:
书
id | title | pages
1 | harry potter | 200
2 | game of thrones | 500
图像
id | full | thumb
2 | image.jpg | image-thumb.jpg
地址
id | street | city
1 | 123 street | denver
2 | central ave | tampa
注意
id | object_id | object_type | content | date
1 | 1 | image | "lovely pic" | 2015-02-10
2 | 1 | image | "red tint" | 2015-02-30
3 | 1 | address | "invalid" | 2015-01-05
4 | 2 | book | "boobies" | 2014-09-06
5 | 1 | book | "prettygood" | 2016-05-05
问题是,我如何在教义内部对此进行建模。我所读到的所有内容都涉及没有一对多关系的单表继承。
要注意(没有双关语的意思;),您可能会注意到,note 从不需要基于其相关对象的唯一属性。
理想情况下,我可以执行这将返回的相同类型的Note对象。$address->getNotes()
$image->getNotes()
至少,我试图解决的问题是避免有三个不同的表:image_notes,book_notes和address_notes。