php – 与doctrine建立一对多的多态关系
发布时间:2020-05-25 09:45:46 所属栏目:PHP 来源:互联网
导读:我先来概述一下这个场景.我有一个可以分配给许多不同对象的Note对象 一本书可以有一个或多个注释. 图像可以有一个或多个Notes. A地址可以有一个或多个Notes. 我想像的数据库如下所示: 书 id | title | pages1 | harry potter | 2002 | game of thrones | 500
|
我先来概述一下这个场景.我有一个可以分配给许多不同对象的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 问题是,我如何在Doctrine内建模.关于单表继承的一切,我没有一对多的关系. 要注意(没有双关意图),您可能会注意到该笔记根本不需要基于与之相关的对象的唯一属性. 理想情况下,我可以执行$address-> getNotes(),它将返回$image-> getNotes()返回的相同类型的Note对象. 我至少要解决的问题是避免有三个不同的表:image_notes,book_notes和address_notes. 这个问题给应用程序带来了不必要的复杂性.只是因为笔记具有相同的结构并不意味着它们是相同的实体.当在3NF中对数据库进行建模时,它们不是相同的实体,因为注释不能从书籍移动到地址.在你的描述中,书和book_note之间有一个明确的亲子关系,所以建立它.更多的表不是数据库的问题,但不必要的代码复杂性就是这个问题所示.聪明的聪明才智.这是ORM的麻烦,人们停止进行完整的归一化,并且不能正确建模数据库. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
