1

ライドロケーションの2種類のオブジェクトがあります。

ライドには、ロケーションオブジェクトである出発目的地があります。

場所はライドを指していません。

これは、私が教義において多対一の一方向の関係を持っていることを意味します。

データベースに重複するLocationオブジェクトがないことをドクトリンに保証するにはどうすればよいですか?

例:ミネソタ州ミネアポリスからミネソタ州マンケートまでのライドを作成して永続化すると、データベースに1つのライドオブジェクトと2つのロケーションオブジェクトが保存されます。

これらが永続化されたので、ミネソタ州マンケートからニューアルム、ミネソタ州への別のライドを作成して永続化します。

Doctrineは、ミネソタ州マンケートのロケーションを複製しました。

doctrineにはこの機能がありますか、それとも重複するオブジェクトを作成しているかどうかを確認するのは私の責任ですか?

4

1 に答える 1

2

ロケーション名(おそらく州名+都市名)に一意の制約を課すことができますか?

その場所がすでに存在するかどうかを確認するのはあなたの責任です。もしそうなら、それをフェッチしてライドオブジェクトに提供します。

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 に答える