Существует ли единичная таблица наследования ORM для уникальной модели, адаптированная для программной архитектуры модулей? - PullRequest
0 голосов
/ 20 сентября 2019

Я планирую начать новый проект с другом, и прежде чем углубиться в программирование, я пытаюсь определить основные технологии и определить правильную архитектуру для программного обеспечения.

Тип программного обеспечения, которое яЯ пытаюсь достичь имеет такую ​​структуру:

Программное обеспечение будет разделено на модули.

Например:

Давайте представим, что у нас есть модуль "HR", который делаетматериал с моделью Employee.

Давайте представим, что у нас есть второй модуль "Fleet", который работает с моделью автомобиля.

Оба модуля могут использоваться независимо.Но что, если я хочу делать умные вещи между HR и Fleet?Идея состоит в том, чтобы создать «мост-модуль», который зависит от HR и Fleet и который реализует умные вещи, связанные с HR AND Fleet.

Зачем в бридж-модуль?Чтобы сохранить модульность!

Потому что я хочу иметь возможность использовать только HR, если я хочу, или только Fleet, если я хочу.Так что все должно оставаться в своем модуле.

Давайте вернемся к этим двум моделям (Сотрудник и Автомобиль) от HR и Fleet соответственно.

В мостовом модуле я хочу иметь возможностьнапример, расширить модель Employee, добавив некоторые поля, которые будут характерны для совместной работы HR и Fleet.

Например, поле Employee: company_car, которое будет внешним ключом для автомобиля.во флоте.

То, что я хочу:

  • Класс, который я буду использовать для расширения Employee в мост-модуле, должен хранить новые поля в той же таблице, что и Employee из HR,Такое же поведение для автомобилей в бридж-модуле и во флоте.Это своего рода наследование одной таблицы.Но, кроме того, я хочу, чтобы они рассматривались как ЖЕ модель, независимо от названия класса.Действительно, Сотрудник из Bridge-Module и Сотрудник из HR будут одинаковыми!Дело в том, что мы просто добавляем в него некоторые поля.

Я искал, но не нашел ORM, который ведет себя так.Это своего рода наследование одной таблицы, но я добавляю тот факт, что он должен учитывать, что это та же модель.

Существует ли ORM или даже инфраструктура MVC, которая ведет себя так?

Я буду рад уточнить, если все не ясно.

Заранее спасибо,

lbris.

...