Vamos a ver, no sé si voy a rebatir o a apoyar lo que dice
axelbb.
Desde luego que la sentencia "select haber, debe from cuenta" muy posiblemente va complementada por una condición WHERE pero el punto es:
Si necesita mostrar los saldos parciales (en un rango de fecha u otra condición) entonces de cualquier forma tendrá que bajar todos esos registros al cliente por lo que el tiempo excedente del cálculo del saldo parcial es imperceptible (no estamos hablando de una operación compleja sino de una simple suma acumulativa).
Y si sólo requiere mostrar el saldo total, entonces no hay que molestarse siquiera en calcular los saldos parciales ya que estos se cancelan y sólo queda:
saldo total = haber total - debe total + saldo inicial
por lo que una sólo consulta basta.
No veo ninguna necesidad de triggers, bien o mal planteados. La congruencia entre el saldo y los haberes y deberes se dará al momento de acceder a los datos puesto que no veo ninguna necesidad de almacenar los saldos en la base.
// Saludos