【发布时间】:2012-05-11 13:42:46
【问题描述】:
Product 可能有零个或多个 Label。 Label 可以分配给零个或多个 Product。那么,Doctrine中映射A和映射B有什么区别呢?
映射 A (OneToMany - ManyToOne)
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\OneToMany(targetEntity="Label", mappedBy="products")
*/
protected $labels;
}
/**
* @ORM\Entity
* @ORM\Table(name="label")
*/
class Label
{
/**
* @ORM\ManyToMany(targetEntity="Product", inversedBy="labels")
*/
protected $products;
}
映射 B (ManyToMany - ManyToMany) documentation example
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\ManyToMany(targetEntity="Label", mappedBy="products")
*/
protected $labels;
}
/**
* @ORM\Entity
* @ORM\Table(name="label")
*/
class Label
{
/**
* @ORM\ManyToMany(targetEntity="Product", inversedBy="labels")
*/
protected $products;
}
【问题讨论】:
标签: database-design orm doctrine doctrine-orm associations