Menguruskan Banyak-ke-Banyak Perhubungan dengan Medan Tambahan Menggunakan Doktrin 2
Dalam pemodelan pangkalan data, perhubungan banyak-ke-banyak selalunya melibatkan jadual pautan untuk mewujudkan hubungan antara entiti. Walau bagaimanapun, apabila nilai tambahan dikaitkan dengan jadual pautan ini, perhubungan tradisional banyak-ke-banyak menjadi tidak mencukupi.
Pertimbangkan senario di mana sistem perlu menjejak stok untuk produk dalam berbilang kedai. Perhubungan asas banyak-ke-banyak boleh dibuat dengan struktur pangkalan data berikut:
Product: - product_id - product_name Store: - store_id - store_name Stock: - amount - product_id - store_id
Walau bagaimanapun, struktur ini tidak mempunyai keupayaan untuk menjejaki jumlah stok bagi setiap gabungan produk dan kedai. Untuk menangani perkara ini, medan tambahan, seperti "jumlah", boleh ditambah pada jadual "Stok". Ini menghasilkan entiti baharu dan bukannya jadual pautan semata-mata, kerana ia kini mempunyai kedua-dua pengecam dan nilai.
Dalam Doktrin 2, ini boleh dilaksanakan menggunakan takrifan entiti berikut:
Product: /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="product") */ protected $stockProducts; Store: /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="store") */ protected $stockProducts; Stock: /** ORM\Column(type="integer") */ protected $amount; /** @ORM\ManyToOne(targetEntity="Entity\Store", inversedBy="stockProducts") */ protected $store; /** @ORM\ManyToOne(targetEntity="Entity\Product", inversedBy="stockProducts") */ protected $product;
Dengan mentakrifkan entiti "Stok" yang berasingan dengan perhubungan dua hala kepada "Produk" dan "Kedai", kami boleh mengurus jumlah stok yang dikaitkan dengan setiap produk dan gabungan kedai dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Perhubungan Banyak-ke-Banyak yang Kompleks dengan Medan Tambahan dalam Ajaran 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!