1

我有两种不同的对象:RideLocation

Ride具有作为Location对象的起点终点

位置不指向Ride

这意味着我在教义上有一个多对一的单向关系。

如何让原则确保我的数据库中没有任何重复的Location对象?

例如:如果我创建一个从明尼苏达州明尼阿波利斯到明尼苏达州曼凯托的Ride并将它们持久化,我现在已经在我的数据库中存储了一个Ride和两个Location对象。

既然这些都已持久化,我将创建另一个从明尼苏达州曼凯托到明尼苏达州新乌尔姆的骑行并持久化它们。

Doctrine 复制了明尼苏达州曼凯托的位置。

教义是否具有此功能,或者我是否有责任检查我是否正在创建重复的对象?

4

1 回答 1

2

您可以对位置名称(可能是州名+城市名)设置唯一约束吗?

您有责任查看该位置是否已存在。如果是这样,获取它并将其提供给您的 Ride 对象。

class Ride {
   private $from;
   private $to;

   public function setFrom(Location $from) {$this->from = $from;}

   public function setTo(Location $to) {$this->to = $to;}
 }
于 2012-01-07T17:09:50.830 回答