Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Memodelkan Perhubungan Banyak-ke-Banyak dengan Nilai Tambahan dalam Ajaran 2 Menggunakan Jadual Pautan?

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

Patricia Arquette
Patricia Arquetteasal
2024-10-24 19:37:02742semak imbas

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>

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>

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!

Kenyataan:
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