Schema de bank transactions

Olá eu estou com uma dúvida em relação a modelagem de um banco para transações bancarias
uma conta pode ter um saque, deposito, transferência:

onde saque e deposito tem os mesmos atributos como:
id da conta
amount (valor sacado ou depositado)
date(data de deposito ou saque)

e transferência possui um atributo a mais o target_account ou conta de destino

e então eu fiquei com dúvida da pra fazer algo como isso:
image

mas isso não me parece está normalizado, ou seja quando não for transferência o meu origin id vai ser sempre nulo…

e pensei em algo com herança, generalização:

image

mas me parece estranho, alguém poderia me ajudar como eu poderia melhorar ou apenas ir na primeira opção?