Скажем, у меня есть две таблицы для отслеживания банковского счета:
Account:
------------------------------
AccountID| Account Value
------------------------------
| 0 | 1000
Transactions:
------------------------------------------------
TransactionID| Transaction Value| Paying Account
-------------------------------------------------
| 23 | -50.0 | 0
--------------------------------------------------
| 24 | -5 | 0
Существует обновление для TransactionID = 24, и новое значение, скажем, -10.
Как лучше всего обновить значение учетной записи, чтобы отразить это изменение?
То, что я сделал в своем коде, это
- После того, как кто-то щелкнет ОК в диалоговом окне редактирования
- Отменить исходную транзакцию, добавив минус значения:
А затем применить новое значение транзакции к счету
AccountDAO acc = mDatabase.AccountDAO().getAccount(0);
acc.account_value += transaction_id_24.value * -1;
acc.account_value += transaction_id_24_updated.value;
mDatabase.AccountDAO().updateAccount(acc);
Вышеупомянутый метод работает, но я чувствую, что есть более лучший, более автоматизированный метод, чем выше.
Есть ли способ для базы данных автоматически определить, что значение транзакции было изменено, и затем обновить соответствующую учетную запись в sqlite / android-room?