我们正在考虑将我们的数据库代码在php中迁移到Doctrine2。在我们看来,我们希望做的大部分事情都可以通过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
等
我们有我们的产品不同的用户,其人有不同的额外的产品性能。因此,我们有一个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。
我认为你的意思是这个部分http://docs.doctrine-project.org/en/latest/reference/native-sql.html#named-native-query? Doctrine2是否根据SELECT语句生成INSERT,UPDATE和DELETE语句? –
@munnik我从来没有使用过这个,只有这个:http://docs.doctrine-project.org/en/latest/reference/native-sql.html#resultsetmappingbuilder为了检索对象,而不是更新/插入。但是,也许'命名本机查询'可以处理,不知道,你必须测试它。让我知道它是否有效。我很好奇。 –