Я предлагаю вам использовать отношения какЯ предполагаю, что эта структура (пользователь может иметь собственный адрес, здание имеет адрес, комната имеет здание)
users
address
buildings
rooms
И код для него
/**
* @orm:Table(name="rooms")
* @orm:Entity
*/
class Room {
....
/**
* @orm:InheritanceType("JOINED")
* @orm:OneToOne(targetEntity="Building")
* @orm:JoinColumn(name="bid", referencedColumnName="id", onDelete="CASCADE", nullable=false)
*/
private $building;
....
}
/**
* @orm:Table(name="Buildings")
* @orm:Entity
*/
class Building {
....
/**
* @orm:InheritanceType("JOINED")
* @orm:OneToOne(targetEntity="Address")
* @orm:JoinColumn(name="aid", referencedColumnName="id", onDelete="CASCADE", nullable=false)
*/
private $address;
....
}
/**
* @orm:Table(name="rooms")
* @orm:Entity
*/
class Address {
....
/**
* @orm:InheritanceType("JOINED")
* @orm:OneToOne(targetEntity="User")
* @orm:JoinColumn(name="uid", referencedColumnName="id", onDelete="CASCADE", nullable=false)
*/
private $user;
....
}
/**
* @orm:Table(name="users")
* @orm:Entity
*/
class User {
....
}
@orm:
необходим при использовании доктрины с Symfony