Как сделать так, чтобы доктрина не сохраняла дубликаты объектов в моей базе данных? - PullRequest
1 голос
/ 06 января 2012

У меня есть два разных типа объектов: Ride и Location .

A Ride имеет источник и пункт назначения , которые Местоположение объекты.

Местоположение не указывает на Ride .

Это означает, что у меня в учении однонаправленные отношения "многие к одному".

Как сделать так, чтобы доктрина не содержала дубликатов Местоположение объектов в моей базе данных?

Например: Если я создаю Ride из Миннеаполиса, MN в Mankato, MN и сохраняю их, я теперь храню один Ride и два Location объектов в моей базе данных.

Теперь, когда они сохранились, я собираюсь создать еще одну Поездку из Манкато, Миннесота, в Новый Ульм, Миннесота, и сохранить их.

Доктрина дублирует Местоположение Манкато, Миннесота.

Имеет ли доктрина эту функцию, или я обязан проверить, создаю ли я дублирующиеся объекты?

1 Ответ

2 голосов
/ 07 января 2012

Можете ли вы наложить уникальное ограничение на Название местоположения (может быть, название штата + название города)?

Вы несете ответственность за то, чтобы увидеть, существует ли это местоположение. И если это так, возьмите его и доставьте в свой объект Ride.

class Ride {
   private $from;
   private $to;

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

   public function setTo(Location $to) {$this->to = $to;}
 }
...