symfony postgres doctrine dynamic relations. Как реализовать с сохранением в базе?
В общем есть у меня обект вот в таком виде
{
"delivery":{
"street":"street name",
"deliveryDetails": {
}
}
}
deliveryDetails - один из трех объектов
office: {
"roomSpaceVolume":float
}
machine: {
"serialNumber":int
}
human: {
"name":string
}
Как это сохранить в базе? с сохранением связей между зависимостями объектов (doctrine relations). заблаговременно естественно неизвестно какой тип доставки будет. Хранить разные типы нужно в отдельных таблицах. У меня Postgres+Symfony.
Ответы (1 шт):
Принцип: общая часть частично разных сущностей хранится в одной общей таблице, различия - в разных, которые имеют реляции с общей. В объектной области все выглядит прозрачно. Однако, 1. нужно иметь поле дискриминанта, на основе которого определяется соединение таблиц (например тип) 2. Каждый тип желательно иметь отдельным классом, наследуемым от одного общего