6

以下に示すように、DBスキーマの正確なマッピングを探していますサンプル データベース スキーマ

ご覧のとおり、product_i18n テーブルには 2 つの複合外部キー (product_id と locale_id) があります。

製品とロケールのエンティティが完成したら、データ (名前と説明) を product_i18n テーブルに挿入します。

Doctrine 2 を使用したこのタイプのマッピングに似た例はありますか。または、このタイプのマッピングにアプローチする方法を簡単に説明できる場合は、情報をいただければ幸いです。

PS これに関する詳細情報が必要な場合は、お気軽にお問い合わせください。

4

2 に答える 2

10

Doctrine 2 は複合キーをネイティブにサポートします

/**
 * @Entity
 */
class ProductI18N
{
    /** @Id @Column(type="string") */
    private $product;
    /** @Id @Column(type="string") */
    private $locale

    public function __construct($product, $locale)
    {
        $this->product= $product;
        $this->locale= $locale;
    }

モデルを永続化する前に、複合キーを設定する必要があることに常に注意してください。

$productI18N = new ProductI18N("Guanabana", "CR");
$em->persist($productI18N );
$em->flush();

詳細については、次のドキュメントを参照してください: http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html

于 2012-12-11T17:38:02.663 に答える
4

フィールド 1 (id autoincrement) とフィールド 2 (指定) を使用する複合キーがある場合:

class ProductI18N
{
    /** @Id @Column(type="string") @GeneratedValue(strategy="AUTO") */
    private $product;
    /** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */
    private $locale
于 2014-09-12T17:02:37.057 に答える