假设我有一个博客应用程序。
作者可以通过提供网络上现有图像的 URL 链接或上传新图像来将多个图像添加到帖子中。
我希望能够从图像(上传或网址)回溯到使用该图像的所有帖子,以及从特定帖子回溯到该帖子中的所有图像(例如 - 这样我就可以删除非法图像和/或暂停使用它们的帖子,直到作者修复该帖子)。
但是,我对上传的图像和 url 图像使用不同的实体 - 上传的图像比 url 图像具有更多有关图像的数据。
这会导致更复杂的代码,因为在每次保存编辑后的帖子时,我需要检查特定图像是哪种类型(在我需要运行的帖子中的所有图像中),然后创建或更新其记录,并且分配给帖子实体中的关系字段。
所以...假设我有一个UploadedImage
and a UrlImage
实体,我想过有一个setImages
方法中的post
实体,它检查它获取的每个图像是否已上传或 url,然后调用setUploadedImages
or setUrlImages
.
但是,我需要某种虚拟的images
存储库,以相同的方式加载图像。
听起来有点复杂,我想知道:
- 我怎样才能拥有一个虚拟学说实体(及其存储库和所有内容)?
- 有没有更好的设计呢?
这是您想要执行的操作的文档:
http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html
它描述了单表继承与类表继承。
您的情况适合后一种情况,但也请考虑迁移到单表继承。
如果这些图像的(代码)用户无论其来源如何都对它们一视同仁,那么增加的查询复杂性和数据库使用将不值得标准化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)