Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 第2条相互排斥关系_Php_Doctrine Orm_Relational Database - Fatal编程技术网

Php 第2条相互排斥关系

Php 第2条相互排斥关系,php,doctrine-orm,relational-database,Php,Doctrine Orm,Relational Database,我有一个实体内容,与FileImage或FileVideo相关。在第2条原则中,这样做的正确方式是什么 内容应与FileImage或FileVideo相关,不能同时与两者相关,也不能不相关 使用注释语法解决上述问题的有效示例是什么 或者也许我看错了 我的设计理念;文件使用MogileFS存储,MogileFS将每个文件的多个副本保存在按文件名编制索引的服务器子集上。FileVideo包含不同属性(缩略图、大小调整等)的文件名列表,这些属性根据文件类型(例如FileVideo和FileImage

我有一个实体内容,与FileImage或FileVideo相关。在第2条原则中,这样做的正确方式是什么

内容应与FileImage或FileVideo相关,不能同时与两者相关,也不能不相关

使用注释语法解决上述问题的有效示例是什么


或者也许我看错了


我的设计理念;文件使用MogileFS存储,MogileFS将每个文件的多个副本保存在按文件名编制索引的服务器子集上。FileVideo包含不同属性(缩略图、大小调整等)的文件名列表,这些属性根据文件类型(例如FileVideo和FileImage)的不同而不同。文件本身的路径将通过FileVideo关系加载到Doctrine 2之外的MogileFS映射器。业务逻辑应该只关注包含ref的内容模型,并考虑某种继承。FileVideo和FileImage可以是某个父实体“File”的子类,您的内容实体将与“File”具有@OneToOne或@ManyToOne关系。您将被留给自己的设备来确保Content.file不为null


请注意,在本例中,在决定类表和单表继承实现之间存在权衡。CTI将提供一个更规范化的模式,如果您的继承图可能会增长,那么它可以说是更灵活的,但它将

如何为条令编写注释以处理非数据库现有父实体?甚至可以做到吗?有另一个连接表供文件引用FileImage和FileVideo似乎不是一个优雅的解决方案。(例如,为什么这个引用逻辑不能保留在Content entity中?)-或者我需要两列,并让entity setter验证它们是否相互排斥?文件将只是一个您从未实例化过的实体(所以,您会将其视为抽象的,即使它不会)。如果您担心太多的表/联接,可以使用单表继承。