Polymorphic relationship in doctrine 2
It does look like a use case for inheritance mapping, unless you have a ton of different entities you want to store addresses for. Using your example in Doctrine, you'd create two classes for each of your addresses.
<?phpnamespace MyProject\Model;/** * @Entity * @InheritanceType("SINGLE_TABLE") * @DiscriminatorColumn(name="type", type="string") * @DiscriminatorMap({"event" = "EventAddress", "museum" = "MuseumAddress"}) */class Address { protected $street; // ...}/** * @Entity */class EventAddress extends Address { protected $event; // ...}/** * @Entity */class MuseumAddress extends Address { protected $museum; // ...}
Read more about inheritance mapping.