Пользователь вообще не должен редактировать такие операции. Если это просто учет каких-то финансов - то проблем тут критичных нет. Но если это работа с реальными средствами, то сразу же большая проблема. Представьте себя при взаимодействии с банкоматом. Приходите и редактируете себе баланс с 1 рубля на 1000 рублей)) Ну это будет странно.
Решение:
1. Убрать возможность редактирования вообще. Только + (пополнение) и - (снятие) ну и максимум удалить операцию, но тут надо только админам))
2. То же самое что и первое + добавить новый тип "перевод" и новую колонку transfer_id
При переводе мы вписываем в тип "перевод", а в колонку transfer_id добавляем id платежного средства пользователя (банковская карта, кошелек с наличными и т.д.), внешний ключ на таблицу 'sources', где есть описание всех средств