現在、PHP のデータベース コードを Doctrine2 に移行することを検討しています。私たちがやりたいことのほとんどは Doctrine2 で可能だと思われます。それが可能かどうか、またそれをどのように行うべきか、私たちが確信していないことが1つだけあります。別のプロジェクトが同じデータベースを使用しているため、データベース モデルを現在変更できません。一度に 1 つのことしか変更できません。もちろん、データベース モデルを改善する方法にも関心がありますが、それは私たちの主な関心事ではありません。
問題はこのようなものです。次のような基本的な製品情報を含む製品テーブルがあります。
[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
このデータを 1 つのオブジェクトで取得するために必要な Doctrine2 コードをどのように修正すれば、このようなオブジェクトを作成できるでしょうか?
[Product]
Id : 4
Code : AS84GD
Name : Steel brush
Description : Strong steel brush.....
Price : 25.50
Weight : 280
Color : brown
Supplier : company_x
(N)Hibernate コードを読み取ってアイデアを Doctrine2 に変換できるので、Hibernate のタグを追加しました。