अतिरिक्त मूल्यों के साथ कई-से-अनेक संबंध कई-से-अनेक नहीं है, लेकिन वास्तव में एक नई इकाई है, क्योंकि अब इसमें एक पहचानकर्ता (जुड़े हुए संस्थाओं के दो संबंध) और मूल्य हैं।
यही कारण है कि कई-से-अनेक संबंध इतने दुर्लभ हैं:आप उनमें अतिरिक्त गुण संग्रहीत करते हैं, जैसे sorting
, amount
, आदि.
आपको शायद निम्नलिखित की तरह कुछ चाहिए (मैंने दोनों संबंधों को द्विदिश बना दिया है, उनमें से कम से कम एक को एक-दिशात्मक बनाने पर विचार करें):
उत्पाद:
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;
}
स्टोर:
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;
}
स्टॉक:
namespace Entity;
use Doctrine\ORM\Mapping as ORM;
/** @ORM\Table(name="stock") @ORM\Entity() */
class Stock
{
/** ORM\Column(type="integer") */
protected $amount;
/**
* @ORM\Id()
* @ORM\ManyToOne(targetEntity="Entity\Store", inversedBy="stockProducts")
* @ORM\JoinColumn(name="store_id", referencedColumnName="id", nullable=false)
*/
protected $store;
/**
* @ORM\Id()
* @ORM\ManyToOne(targetEntity="Entity\Product", inversedBy="stockProducts")
* @ORM\JoinColumn(name="product_id", referencedColumnName="id", nullable=false)
*/
protected $product;
}