Oi Gisele, tudo bem?
Desculpe a demora em retornar.
Entendo que a estrutura do database possa parecer um pouco confusa no início, especialmente se você está acostumada com Java. No Dart, o tipo Map é utilizado para representar uma coleção de pares chave-valor, onde a chave é única e usada para acessar o valor correspondente.
No exemplo que você compartilhou, o _database
é um Map onde a chave é uma String (provavelmente o ID da conta) e o valor é um objeto do tipo Account. Portanto, o ID do database não é o objeto conta em si, mas sim a chave que é usada para acessar a conta correspondente dentro do Map.
Ao utilizar _database[id] = account;
, você está adicionando um novo par chave-valor ao Map. A chave é o ID da conta e o valor é o objeto Account em si. Dessa forma, você pode acessar facilmente uma conta específica utilizando o ID correspondente como chave.
Quanto ao uso dos IDs, é uma prática comum em bancos de dados relacionais ou mesmo em estruturas de dados em geral. Os IDs são únicos e servem como identificadores para cada registro ou objeto. Eles permitem que você encontre facilmente um registro específico, mesmo que haja muitos outros no database.
Espero ter ajudado a esclarecer sua dúvida!
Um abraço e bons estudos.