Doctrine orm 一对一关系原则-唯一约束
我有这样一个场景:Doctrine orm 一对一关系原则-唯一约束,doctrine-orm,entity-relationship,entities,unique-index,Doctrine Orm,Entity Relationship,Entities,Unique Index,我有这样一个场景: 实体MealListDay是一天,有六顿饭(实体一餐)。现在我使用一对一的关系。但有一个问题,因为更多的天不能有相同的实体餐-错误:唯一约束。我知道,实体餐在OneTONE关系中必须是唯一的,但仅使用这两个表有什么解决方案吗 有什么想法吗?谢谢 实体测量日 /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue * @var integer */
实体MealListDay是一天,有六顿饭(实体一餐)。现在我使用一对一的关系。但有一个问题,因为更多的天不能有相同的实体餐-错误:唯一约束。我知道,实体餐在OneTONE关系中必须是唯一的,但仅使用这两个表有什么解决方案吗 有什么想法吗?谢谢 实体测量日
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
* @var integer
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $elevenses;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $soup;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $mainMeal;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $sideDish;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $drink;
/**
* @ORM\OneToOne(targetEntity="Meal", cascade={"persist"})
* @ORM\JoinColumn(onDelete="SET NULL")
* @var Meal
*/
protected $nosh;
实体餐:
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
* @var integer
*/
private $id;
/**
* @ORM\Column(type="string", length=150)
*/
protected $name;
/**
* @ORM\Column(type="string", length=20)
*/
protected $type;
/**
* @ORM\Column(type="simple_array", nullable=true)
*/
protected $allergens;
您的mmodel有第一个标准形式问题 请尝试以下操作: 米尔斯戴伊酒店 -身份证 -提供日期 测量 -MealListDayID(FK到MealListDay) -MealId(FK到餐) 餐 -身份证 -名字
顺便说一句,包括食物中的过敏原可能会导致1NF问题,我必须实现关系M:N,这是结果。 我知道,属性过敏原不在1NF中,但这些只是数字,链接到特定的过敏原名称和描述,它们在类中静态定义