Я не совсем уверен, что понимаю вашу структуру.
У вас должна быть возможность отсортировать одну бизнес-транзакцию (несколько строк LedgerEntry?) По транзакции_темпера, чтобы получить правильный порядок.
Но почему строка текущего баланса в таблице вообще? Это может быть вычислено, да?
Если в строке текущего баланса есть , я бы создал столбец line_item_number и назначил значения последовательно для каждой бизнес-операции. Это, вероятно, сделает хороший уникальный ключ в сочетании с идентификатором Ledger. И я присвоил бы текущей строке баланса магическое значение 999999, чтобы она всегда сортировалась последней.
Приятным побочным эффектом является то, что сбор суммы задолженности из таблицы очень прост - суммируйте все строки, где line_item_number = 999999.
Однако я предпочел бы удалить строку current_balance и посмотреть, как проблемы исчезнут.
Другой вариант - поместить компьютер current_balance в Ledger, а не в строку LedgerEntry.