У меня есть следующие настройки базы данных:
Tag (Integer id)
ItemTag (Integer id, Integer tag_id, Integer item_id, Integer item_type)
Artwork (Integer id)
Photo (Integer id)
Я попытался использовать поле item_id в ItemTag как для идентификатора обложки, так и для идентификатора фотографии, как показано ниже
class ItemTag {
/**
* @Id @GeneratedValue
* @Column(type="integer")
*/
private $id;
/**
* @Column(type="integer")
*/
private $item_type;
/**
* @ManyToOne(targetEntity="Artwork")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $artwork;
/**
* @ManyToOne(targetEntity="Photo")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $photo;
/**
* @ManyToOne(targetEntity="Tag")
*/
private $tag;
}
Приведенная выше настройка не выдает никаких ошибок и работает нормально, когда я пытаюсь сохранить «элемент фотографии», однако при сохранении «элемента иллюстрации» item_id имеет значение NULL.
Есть ли способ сохранить оба отношения в одном поле item_id?