sql >> データベース >  >> RDS >> Mysql

Doctrine2および追加フィールドを備えた多対多リンクテーブル

    追加の値との多対多の関連付けは多対多ではありませんが、識別子(接続されたエンティティへの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. OracleのRANK、DENSE_RANK、およびROW_NUMBER関数

    2. MySQLリモートアクセス用のSSHトンネルを作成する

    3. 問題セット2–エンティティと属性の特定

    4. PHPMyAdminでファイルサイズの制限をインポートする