Zuordnung einer Adresse zu mehreren Werten

Ich möchte eine Adresse zwei verschiedenen Feldern zuordnen. welches ist richtig oder besser?

Ansatz 1:

mapping(address => uint256) balances_En;
mapping(address => uint256) balances_PW;

und um sein Gleichgewicht zurückzugeben:

return balances_En[_owner]
return balances_PW[_owner]

Ansatz 2:

struct Balances {
    uint256 balances_En;
    uint256 balances_PW;
  }
mapping(address => Balances) balances; 

und um sein Gleichgewicht zurückzugeben:

return balances[_owner].balances_En
return balances[_owner].balances_PW

Antworten (1)

Beide sind richtig.

Danach ist es nur noch eine Frage der persönlichen Entscheidung. Ich würde den zweiten Ansatz wählen, der mir natürlicher erscheint. Wenn Sie später möchten, dass die Benutzer mehr Informationen als nur ihre beiden Salden haben, ist es einfacher, diese einfach in die Struktur einzufügen, als neue Zuordnungen vorzunehmen.

Ich stimme dem zu, der zweite wäre auch meine Präferenz, während beide arbeiten. Nicht nur das, ich denke, Sie sparen am Ende auch Benzin, wenn Sie die zweite Methode im Vergleich zur ersten verwenden.
Ja, das tun Sie in der Tat, da Sie den Schlüssel nur einmal hashen.