Ну, наверное, да, но это уже прям сложная логика. И все фильтры придется заранее расписывать в каком-нибудь, не знаю... визио. Потому что можно смело запутаться, и в итоге перестать понимать, как работает собственноручно созданное приложение.
А при переносе записи с одной таблички в другую нужно лишь настроить сопоставление полей, тем же "драг-н-дропом". Чтобы типы полей были идентичны, да. И после проверки и установки сопоставления можно предусмотреть внутренний флаг "установлено сопоставление полей из несвязанной сущности". При изменении конфигурации полей в сущностях можно было бы проверять наличие этого флага, смотреть что там, собственно, сопоставлено, и не разрешать менять типы этих полей (и только этих сопоставленных полей). Айдишники и так нельзя менять, так что речь только о типах.
Например, запись, которую нужно перенести, это совокупность из VARCHAR (256), LONG TEXT и, скажем, BOOLEAN. Они сопоставлены к принимающей сущности по ID ее полей, и там точно такие же типы полей (а иначе сопоставление просто не выполняется). Ок.
Дальше варианты действия пользователя:
- Вдруг в донорской сущности пользователь решил просто грохнуть BOOLEAN. С точки зрения принимающей сущности это вообще не страшно -данные просто не попадут по причине их отсутствия.
- Если пользователь решит добавить к уже установленному сопоставлению поле - флаг в руки, сопоставление нужно просто пересоздать.
- Если пользователь решит в принимающей сущности заменить сопоставленный BOOLEAN на, скажем, MEDIUM TEXT, то прога, прежде чем что-либо вообще менять, видит флажок, сигнализирующий о наличии сопоставления, и не позволяет менять это поле, отправляя красивой ссылочкой чувака к той сущности, где есть эта привязка. Ну либо вариант тут же разорвать связь с предупреждением о вменяемости (ну вдруг там сущность вообще пробная, и разорвать сопоставление не страшно).
С точки зрения других логик- фильтров и т.п., это довольно безопасная операция, вроде как. Данные просто берутся с одного места и переносятся. Проблемы могут быть если пытаться делать вложенный перенос данных, которые связаны с переносимой записью. Если еще и перенос связанных записей сделать, то это просто добавит гибкости и без того гибкому приложению ровно на 100%, так как тогда подчинение сущностей станет не единственным вариантом связывания данных, а разграничение прав доступа можно сделать еще более явным и безопасным.
А еще можно переносить формульные данные в виде вычисленного значения

Не знаю зачем, но интуитивно кажется полезным.
А самое важное - эта операция кажется проще, чем настраивание сложных вложенных сущностей и накручивания хитрых фильтров. А простота - это главный конёк "Руководителя"
Просто мысли.
А еще можно замутить графическое представление логики приложение, автоматическая генерация схемы

Для тех админов, кто вконец запутался во взаимосвязях.И вообще реализовать настройку связей путем таскания блоков по экрану мышкой ) Этакий BPML.