Size: a a a

2020 September 18

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Да. Я не особо вникал во вчерашнюю писанину, но сущность контрактор должна быть агрегатом, который содержит конкретные типы.
Там будет под каждый тип отдельный агрегат контрактора
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Там будет под каждый тип отдельный агрегат контрактора
Если у тебя есть в системе понятие контрактор, то я бы так не делал
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Если у тебя есть в системе понятие контрактор, то я бы так не делал
Если не делать агрегаты - возвращаемся тогда к вопросу сохранения транзакционного :(
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Если не делать агрегаты - возвращаемся тогда к вопросу сохранения транзакционного :(
Почему не делать, сделать контрактора и в нем embedded vo
источник

СП

Сергей Предводителев... in Yii Framework 3
Но этот embedded entities может быть только 1 - либо это физик, либо организация, либо ип, либо самозанятый..

... или сделать для каждого отдельно:

class Contractor {
 private $fizik;
 private $org;
 private $ip;
 private $selfemployed;
}


?
источник

СП

Сергей Предводителев... in Yii Framework 3
то есть три из них будут null, а один будет заполнен. В зависимости от типа контрагента.
источник

NO

Nex Otaku in Yii Framework 3
Зачем вообще null поля хранить? ) Лучше пусть оно отсутствует
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
то есть три из них будут null, а один будет заполнен. В зависимости от типа контрагента.
Да, это VO, есть общие поля контрагента, есть объекты-значения fizikInfo, orgInfo, ipInfo и поле contractorType
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Да, это VO, есть общие поля контрагента, есть объекты-значения fizikInfo, orgInfo, ipInfo и поле contractorType
А с точки зрения производительности не будет проблемой? Это ведь ORM придётся при получении этих агрегатов джойнить все эти 4 таблицыю
источник

AM

Alexander Makarov in Yii Framework 3
Join не проблема.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
А с точки зрения производительности не будет проблемой? Это ведь ORM придётся при получении этих агрегатов джойнить все эти 4 таблицыю
Это одна таблица по дефолту
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Это одна таблица по дефолту
почему одна?
для каждого типа свои поля и под каждый тип есть таблица в дополнение к основной с контрагентами
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
почему одна?
для каждого типа свои поля и под каждый тип есть таблица в дополнение к основной с контрагентами
Если орм позволяет разруулить embedded в разные таблицы, то можно и так
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Если орм позволяет разруулить embedded в разные таблицы, то можно и так
пошёл изучать))

Спасибо за советы! Когда начинаешь менять подходы, в теории красиво, а на практике миллион вариантов как можно сделать и не понятно что выбрать :)
источник

М

Максим in Yii Framework 3
Alexander Makarov
У меня система оповещения была === системе отсылки сообщений всегда.
Понял, спасибо)

Ещё тогда вопрос. Под каждый транспорт нужны шаблоны:
- mail
- sms
- service

Как их лучше реализовать? В одной сущности Template и уже внутри делать гибкий конструктор создания для каждого транспорта:
Template::createEmail(...)
Template::createSms(...)
Template::createService(...)
Если говорит о базе, то при таком подходе таблица будет одна на все типы транспорта.

Либо лучше под каждый транспорт свой шаблон:
new MailTemplate(...);
new SmsTemplate(...);
new ServiceTemplate(...);
При таком подходе все данные будут отделены в свои таблицы.

В дальнейшем могут добавиться типы транспорта: чат, пуш. Я склоняюсь ко второму варианту, но не избыточен ли он?
источник

NO

Nex Otaku in Yii Framework 3
Нет, не избыточен. Интуиция тебе правильно подсказывает, лучше не пытаться объединять разные по типу данные.
источник

NO

Nex Otaku in Yii Framework 3
Делай разные таблицы.
источник

Д

Дмитрий in Yii Framework 3
Сергей Предводителев
Но этот embedded entities может быть только 1 - либо это физик, либо организация, либо ип, либо самозанятый..

... или сделать для каждого отдельно:

class Contractor {
 private $fizik;
 private $org;
 private $ip;
 private $selfemployed;
}


?
FizikContractor, OrgContractor, EtcContractor?
источник

Д

Дмитрий in Yii Framework 3
Или 1 свойство с разными типами
источник

СП

Сергей Предводителев... in Yii Framework 3
Дмитрий
Или 1 свойство с разными типами
В идеале - 1 свойство с разными типам. Но не понятно как с этим работать в плане ORM, сохранять и восстанавливать
источник