Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक अतिरिक्त क्षेत्र के साथ सिद्धांत 2 और कई-से-अनेक लिंक तालिका

अतिरिक्त मूल्यों के साथ कई-से-अनेक संबंध कई-से-अनेक नहीं है, लेकिन वास्तव में एक नई इकाई है, क्योंकि अब इसमें एक पहचानकर्ता (जुड़े हुए संस्थाओं के दो संबंध) और मूल्य हैं।

यही कारण है कि कई-से-अनेक संबंध इतने दुर्लभ हैं:आप उनमें अतिरिक्त गुण संग्रहीत करते हैं, जैसे 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;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर के लिए MySQL LIMIT क्लॉज समतुल्य

  2. MySQL विदेशी कुंजी त्रुटि 1005 त्रुटि 150 प्राथमिक कुंजी विदेशी कुंजी के रूप में

  3. Ubuntu 20.04 पर MySQL को इंस्टाल करना और कॉन्फ़िगर करना

  4. प्रत्येक प्रविष्टि के लिए एक पंक्ति के साथ सूची प्रविष्टि बनाम SQL तालिका के साथ SQL तालिका

  5. MySQL में SUBDATE() बनाम DATE_SUB():क्या अंतर है?