如何";扩展;在CakePHP中使用数据的模型是否正确?
我正在将我的一个旧的手工制作的应用程序改写成CakePHP 2.0,我遇到了这个旧的、不断重复的模型设计难题 这是目标设计:如何";扩展;在CakePHP中使用数据的模型是否正确?,cakephp,database-design,model,single-table-inheritance,Cakephp,Database Design,Model,Single Table Inheritance,我正在将我的一个旧的手工制作的应用程序改写成CakePHP 2.0,我遇到了这个旧的、不断重复的模型设计难题 这是目标设计: Order有许多OrderEntries OrderEntry有字段[金额,类型] ProductEntry使用字段[产品id、数量、重量]扩展OrderEntry ShipmentEntry使用字段[总重量、国家/地区id、城市、地址等]扩展OrderEntry DiscountEntry使用字段[折扣\代码、父\订单\ id、活动等]扩展OrderEntry 编
- Order有许多OrderEntries
- OrderEntry有字段[金额,类型]
- ProductEntry使用字段[产品id、数量、重量]扩展OrderEntry
- ShipmentEntry使用字段[总重量、国家/地区id、城市、地址等]扩展OrderEntry
- DiscountEntry使用字段[折扣\代码、父\订单\ id、活动等]扩展OrderEntry
编辑:彻底简化问题,代替新知识 因此,基本上,我需要Cake的模型结构:
Order 1:m OrderEntry
OrderEntry 1:1 ProductEntry
OrderEntry 1:1 ShipmentEntry
OrderEntry 1:1 DiscountEntry
最后3个关联应为非识别关联。更准确地说,一个OrderEntry记录可以与三个子模型中的一个子模型有一个关系
这可以通过使用OrderEntry作为Order和所有3个XxxEntry模型之间的联接表来实现,但这意味着Order\u entries表应该有3个外键字段:
- 产品\u条目\u id
- 装运\输入\标识
- 折扣\u条目\u id
总之,拥有一个基本模型的最佳实践是什么,它由几个不同的模型和它们自己的表扩展而成?我不确定这是否是您要寻找的,但有一个Cake实体插件可能值得一看:这似乎是一个很棒的插件。我认为不将数据视为对象是Cake的一大缺点,从OOP的角度来看,这将更加直观。但我不确定这是否解决了我的问题。无论如何,谢谢你,我相信这个插件会在我未来的开发中得到应用