Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menguruskan Perhubungan Banyak-ke-Banyak yang Kompleks dengan Medan Tambahan dalam Ajaran 2?

Bagaimana untuk Menguruskan Perhubungan Banyak-ke-Banyak yang Kompleks dengan Medan Tambahan dalam Ajaran 2?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 18:36:02290semak imbas

How to Manage Complex Many-to-Many Relationships with Additional Fields in Doctrine 2?

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!

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