Kein Designmuster an sich, aber Sie müssen sicherstellen, dass Operationen wie “transfer $amount von $account1 auf $account2” nie “abheben” ohne die entsprechende “Einzahlung”… d.h. wenn der Strom ausgeht, bevor die “Einzahlung” abgeschlossen ist, wird der “Rückzug” zurückgerollt (undon) Als Nebensache, wenn Sie wirklich nur an Salden und Transaktionen interessiert sind, dann klingt es wie jedes Muster oder Projekt im Zusammenhang mit Reputation, Karma oder Punktesysteme werden wahrscheinlich relevante Überlappung haben… Das Free Digital Money Project ist hilfreich für Ihre Bedürfnisse. Es bietet einen grundlegenden Transaktions- und Ausgleichsrahmen. Es ist absichtlich einfach und abstrakt, so kann nützliche Design-Einblicke bieten, vor allem, wenn Sie neue Ideen testen möchten. Fowlers Muster sind nicht übermäßig komplex. Es geht darum, was gebraucht wird. Es ist unwahrscheinlich, dass Sie in der Lage sind, etwas einfacher zu bauen, ohne Probleme mit den Endbenutzern oder dem Buchhalter zu bekommen.
Wenn ich die Buchhaltung implementiert, ist dies das typische Modell einer Erfassung, Buchungen und Konten und Kontotypen. Es erfordert nicht viel Buchhaltungswissen, um dies zu implementieren und ist einfach, aber effektiv. Speichern Sie Geld als Cent (ganzzahlig) anstelle von Dollars (Float). Es ist kein Design, aber es ist wahrscheinlich nützlicher. Alle diese sind Open Source, so dass Sie die Dokumente, Architektur und Code direkt überprüfen können. Warnung: BCD-Mathematik wurde erfunden, um Round-off-Fehler in Basis 10-Mathematik zu verhindern. Sie erwähnen keine internationalen Probleme, aber Sie würden Fixpunkt oder “große Präzision” Mathematik, Währungsumrechnung und alles andere benötigen… Die tblTransactions hat einen Trigger, und der Trigger aktualisiert einen `CalculatedBalance` für die spezifischen Konten je nach Typ. Sie können dann auch einen Bericht über einen bestimmten Zeitraum usw. ausführen. MyBanco ist ein weiteres Open-Source-Banking-System, das Bankkonten von Benutzern und webbasierten Zugriff unterstützt. Es kann sowohl mit virtuellen als auch mit realen Währungen verwendet werden.
Cyclos ist praktischer. Sie umfasst Benutzerkonten und Transaktionen. Ich habe dann auch eine tblJournals, die Transaktionen auf der offensichtlichen Basis gruppiert. Sie können auch JournalTypes hinzufügen, die eine allgemeine Beschreibung der Art von Journal enthalten, um die es sich handelt, sodass Sie schöne Dinge (Verehrungusw.