Dor*_*ron 7 php database-design associations doctrine-orm
假设我有一个博客应用程序.
作者可以通过提供指向网络上现有图像的URL的链接或者上传新图像来向帖子添加多个图像.
我希望能够从图像(上传或网址)回溯到使用该图像的所有帖子,从特定帖子到该帖子中的所有图像(例如 - 所以我可以删除非法的图像)和/或暂停使用它们的帖子,直到作者修复帖子为止.
但是,我使用不同的实体来处理上传的图像与网址图像 - 上传的图像有关于图像的数据比网址图像更多.
这导致更复杂的代码,因为在每次保存编辑的帖子时我需要检查哪种类型是特定图像(在我需要运行的帖子中的所有图像中),而不是创建或更新其记录,以及分配给post实体中的关系字段.
所以...假设我有一个UploadedImage和一个UrlImage实体,我想setImages在post实体中有一个方法,它检查它获得的每个图像,如果它被上传或url,然后调用setUploadedImages或者setUrlImages.
但是,我需要某种虚拟images存储库,以相同的方式加载图像.
听起来有点复杂,我想知道:
小智 2
这是您想要执行的操作的文档:
http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html
它描述了单表继承与类表继承。您的情况适合后一种情况,但也请考虑迁移到单表继承。
如果这些图像的(代码)用户无论其来源如何都对它们一视同仁,那么增加的查询复杂性和数据库使用将不值得标准化。