我们目前正在考虑将 php 中的数据库代码迁移到 Doctrine2。在我们看来,我们想做的大部分事情都可以通过 Doctrine2 实现。只有一件事我们不确定它是否可能以及我们应该如何做到这一点。我们的数据库模型现在无法更改,因为另一个项目正在使用相同的数据库。我们一次只能改变一件事。当然,我们也很好奇如何改进数据库模型,但这不是我们主要关心的问题。
问题是这样的。我们有一个包含基本产品信息的产品表,如下所示:
[product_id | code | name | description | price]
4 AS84GD Steel brush Strong steel brush..... 25.50
28 HDD21N Sand paper Sand paper for wood..... 0.40
ETC
我们的产品有不同的用户,他们都有不同的额外产品属性。所以我们有一个 product_extra_field 表,看起来像这样:
[extra_field_id | name]
3 weight
4 color
9 supplier
最后是带有额外数据 product_extra_field_data 的表
[product_id | extra_field_id | value]
4 3 280
4 4 brown
4 9 company_x
28 3 3
28 4 yellow
28 9 company_y
我们如何纠正必要的 Doctrine2 代码以在一个对象中获取这些数据,以便我们可以拥有这样的对象?
[Product]
Id : 4
Code : AS84GD
Name : Steel brush
Description : Strong steel brush.....
Price : 25.50
Weight : 280
Color : brown
Supplier : company_x
我为 Hibernate 添加了一个标签,因为我可以阅读 (N)Hibernate 代码并将这些想法转换为 Doctrine2。