Bagaimana Memodelkan Perhubungan Banyak-ke-Banyak dengan Nilai Tambahan dalam Ajaran 2 Menggunakan Jadual Pautan?

Patricia Arquette
Lepaskan: 2024-10-24 19:37:02
asal
739 orang telah melayarinya

How to Model Many-to-Many Relationships with Additional Values in Doctrine 2 Using a Link Table?

Doktrin 2 dan Jadual Pautan Many-to-many dengan Medan Tambahan

Memahami Hubungan Ramai-ke-Ramai dengan Nilai Tambahan

Dalam model pangkalan data hubungan, perhubungan banyak-ke-banyak mewakili senario di mana berbilang baris daripada satu jadual boleh dikaitkan dengan berbilang baris daripada yang lain. Walau bagaimanapun, apabila nilai tambahan diperkenalkan ke dalam perhubungan ini, ia berubah menjadi entiti baharu. Entiti ini mempunyai pengecam (dua perhubungan dengan entiti yang disambungkan) dan data tambahan.

Memodelkan Perhubungan Ramai-ke-Banyak dengan Nilai Tambahan dalam Doktrin 2

Untuk memodelkan banyak-ke-banyak dengan berkesan banyak perhubungan dengan nilai tambahan dalam Ajaran 2, pertimbangkan untuk mencipta jadual berasingan untuk mewakili perhubungan itu. Jadual ini, yang biasanya dirujuk sebagai "jadual pautan", akan mengandungi lajur yang diperlukan untuk mewujudkan perhubungan dengan kedua-dua jadual induk, serta sebarang atribut tambahan yang dikaitkan dengan perhubungan.

Memetakan Jadual Pautan Entiti dalam Doktrin 2

Dalam konteks Doktrin 2, anda boleh memetakan jadual pautan ini sebagai entiti baharu. Mari kita ambil contoh senario yang melibatkan produk dan kedai:

Entiti Produk:

<code class="php">namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/** @ORM\Table(name="product") @ORM\Entity() */
class Product
{
    /** @ORM\Id() @ORM\Column(type="integer") */
    protected $id;

    /** ORM\Column(name="product_name", type="string", length=50, nullable=false) */
    protected $name;

    /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="product") */
    protected $stockProducts;
}</code>
Salin selepas log masuk

Entiti Kedai:

<code class="php">namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/** @ORM\Table(name="store") @ORM\Entity() */
class Store
{
    /** @ORM\Id() @ORM\Column(type="integer") */
    protected $id;

    /** ORM\Column(name="store_name", type="string", length=50, nullable=false) */
    protected $name;

    /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="store") */
    protected $stockProducts;
}</code>
Salin selepas log masuk

Entiti Stok:

Atas ialah kandungan terperinci Bagaimana Memodelkan Perhubungan Banyak-ke-Banyak dengan Nilai Tambahan dalam Ajaran 2 Menggunakan Jadual Pautan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!