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中,但这些只是数字,链接到特定的过敏原名称和描述,它们在类中静态定义