Анализ полей
Добавлено: 28 июн 2018, 16:33
Здравствуйте!
Предлагаю реализовать полезную, на мой взгляд, вещь - анализ связанности поля с фильтрами, правилами, сущностями и т.п. Данный функционал может сильно облегчить задачу редактирования полей сущности, так как даже на этапе проектирования сложно сразу построить "на бумажке" хорошую архитектуру, а в процессе эксплуатации приложения какие-то поля, которые раньше казались неплохим решением, нужно заменить на другие поля, создав даже подчиненные сущности и наладив связи между ними.
При очередной ревизии структуры сущности оказывается, что какие-то поля уже, кажется, не востребованы, и их функционал реализован иначе. А операторы продолжают послушно бить в базу данные, тратя свое время. И рука администратора тянется к "удалить"... но что если вдруг это поле нужно до сих пор, в каких-то процессах автоматизации, или настроены где-то фильтры по этому полю, или это поле является вспомогательным из-за существующей системы прав пользователей?
Как видится реализация.
1. В идеале, как только поле начинает участвовать в автоматизации, или в любой сущности настроен какой-то фильтр по этому полю, или это поле участвует в формулах, то у этого поля появляется какой-то значок, щелкнув на которой можно узнать полный перечень, где оно задействовано. При попытке удаления такого поля можно предупреждать о наличии связей.
2.А можно просто проводить анализ связей по запросу, не реализовывая механизм проверки связей и присваивания атрибута "поле задействовано в процессах" каждый раз, когда что-то где-то обновляется. И администратор (который, вроде бы, по умолчанию вменяемый человек) прежде чем удалить поле, САМ нажимай кнопочку "анализировать связи" и принимает решение, удалять поле (оно действительно больше не нужно или не влияет ни на что), или просто скрыть от греха подальше (возможно, на него завязаны какие-то старые данные).
Спасибо за внимание.
Предлагаю реализовать полезную, на мой взгляд, вещь - анализ связанности поля с фильтрами, правилами, сущностями и т.п. Данный функционал может сильно облегчить задачу редактирования полей сущности, так как даже на этапе проектирования сложно сразу построить "на бумажке" хорошую архитектуру, а в процессе эксплуатации приложения какие-то поля, которые раньше казались неплохим решением, нужно заменить на другие поля, создав даже подчиненные сущности и наладив связи между ними.
При очередной ревизии структуры сущности оказывается, что какие-то поля уже, кажется, не востребованы, и их функционал реализован иначе. А операторы продолжают послушно бить в базу данные, тратя свое время. И рука администратора тянется к "удалить"... но что если вдруг это поле нужно до сих пор, в каких-то процессах автоматизации, или настроены где-то фильтры по этому полю, или это поле является вспомогательным из-за существующей системы прав пользователей?
Как видится реализация.
1. В идеале, как только поле начинает участвовать в автоматизации, или в любой сущности настроен какой-то фильтр по этому полю, или это поле участвует в формулах, то у этого поля появляется какой-то значок, щелкнув на которой можно узнать полный перечень, где оно задействовано. При попытке удаления такого поля можно предупреждать о наличии связей.
2.А можно просто проводить анализ связей по запросу, не реализовывая механизм проверки связей и присваивания атрибута "поле задействовано в процессах" каждый раз, когда что-то где-то обновляется. И администратор (который, вроде бы, по умолчанию вменяемый человек) прежде чем удалить поле, САМ нажимай кнопочку "анализировать связи" и принимает решение, удалять поле (оно действительно больше не нужно или не влияет ни на что), или просто скрыть от греха подальше (возможно, на него завязаны какие-то старые данные).
Спасибо за внимание.