Accounting-System-design & Datenbanken
Arbeite ich an einer einfachen Rechnungsstellung und Buchhaltung-Anwendungen, aber ich bin Total verloren, wie stellen accounting-Transaktionen(Tagebuch-Einträge) in einer Datenbank. Mit einem separaten Kredit-und Debitkarten-Spalte in der Datenbank scheint wie ein Weg, aber die meisten der Open-Source-Buchhaltung, die ich gesehen habe verwenden eine einzelne Spalte Betrag. Dies ich nehme an, vereinfacht sich die Mathematik viel. Aber dann wie kann ich umwandeln Lastschriften und Gutschriften auf numerische Werte. Wikipedia Half ein wenig, aber wenn ich versuchte, cross-check mit einem accounting-system, die es nicht sieht, wie es gemacht wird.
Hier ist der export aus, dass Rechnungswesen-system:
Werfen Sie einen Blick auf journal 326. Während die Summe der Betrag in diesem Fall = 0 ist, die Summe der credits ist nicht gleich der Summe der Lastschriften (Abbuchung 29 von der Beratung & Accounting(E), Abbuchung 31.39 aus AP(L), und die Gutschrift 2.39 Umsatzsteuer(L)).
Allerdings wenn ich betrachte es als Belastung -31.39 von AP, Es funktioniert. Allerdings bin ich nicht sicher, ob wir könnten credit/debit negative Werte.
Kann mir jemand erklären, wie Datenbanken und Grundsätze der Rechnungslegung zusammen gehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem der Transaktion 326, die Sie erwähnt, ist, dass es scheint, dass Sie getan haben, auf der falschen Seite von Debit - /Kredit-Dinge.
Richtig sein sollte, dass :
Belastung 29 von der Beratung & Accounting, und
Debiiting 2,39 aus Umsatzsteuer. (im Falle, dass dies die Steuer, die Sie bezahlen müssen als Verbraucher)
dann Crediiting 31.39 von AP,
Normalerweise, AP wird auf der Kredit-Seite, außer wenn Sie sich niederlassen, Ihre Zahlung. Dann würden die Transaktion
Abbuchung xx.xx von AP, dann schreiben Sie xx.xx von der Kasse/Bank
Umgang mit diesen EC - /Kredit-Dinge, die in separaten Spalten kann, kann auf die Datenbank einfacher zu Lesen. Durch die Art und Weise, UI, die Aufteilung in Spalten ist auch besser kommunizierbar mit den Endverbrauchern. In meiner Sicht, je mehr wir die Dinge in die ähneln Moden, was die Nutzer erfuhren von accouting-Klassen, die weniger Zeit, die wir aufbringen müssen, um auf Ihnen zu sagen, wie die software zu verwenden.
Können wir nicht mit negativen Wert auf Buchhaltung. Aber auf das DBMS-Seite, können wir die Dinge in der gleichen Spalte, wenn wir mit+, die für Debitings, und - für Creditings. Jedenfalls, haben Sie immer noch Sie zurück konvertieren zu absolut positiven Wert beim Export in Rechnungswesen Berichte.
Martin Fowler ' s "Analyse-Muster" hat ein schönes Kapitel über die Modellierung von accounting-Systeme. Vielleicht kann es dir helfen.
Ich denke, Sie werden besser über das problem nachzudenken im Hinblick auf die Objekte, anstatt zu versuchen, um eine Karte zu, die auf einer relationalen Datenbank. Datenbanken sind deklarative und set-based; Objekte Kapseln Daten mit Operationen in Komponenten. Ich denke, letzteres eignet sich besser für die Modellierung der Buchhaltung, vor allem, wenn Sie heiraten es mit aspect-oriented programming. Lassen Sie die Datenbank einfach so, wie Sie bestehen die Dinge und halten Sie die Logik in der mittleren Stufe.
Check-out SQL-Ledger, eine freie-software-accounting-system realisiert mit Perl und PostgreSQL. Sollte Ihnen ein funktionierendes Beispiel. (Ich habe keine Verbindung mit Ihnen, aber ich habe es vor und es war ausreichend für grundlegende Buchhaltung.)
Was ich werde Gliederung ist aus dem Speicher, und möglicherweise ist eine 'altmodische' Art und Weise zu repräsentieren-Konten.
**Definition von Soll - irgendwelche oder alle diese Bedingungen **
**Definition von Kredit - irgendwelche oder alle diese Bedingungen **
In Ihr Konto eine Tabelle haben, können Sie die flag-Spalte Typ eine "Normale Bilanz" oder "typisch balance" -
Wenn es eine Rechnung, Transaktion - es Beiträge gegen AR (accounts receivable) - und es stellt sich eine 'normale Gleichgewicht", d.h. er wird behandelt, als eine debit-Betrag.
Immer wenn ein Kunde zahlt gegen Rechnung (vollständig oder teilweise), eine (abnorme) gegen die AR-Konto - daher wird es einen Kredit.
Wenn ein Lieferant sendet Ihnen eine Rechnung, Sie werde nach einem normalen Gleichgewicht auf dem AP-Konto, also ein Kredit. Wenn Sie zahlen Verkäufer eine (abnormale, d.h. debit) Buchung gegen das AP-Konto.
Ihre Rechnung-Klasse oder für Ihre Rechnung die Transaktion weiß, dass es normalerweise Beitrag gegen AR (Accounts receivable).
Ebenso Ihre Zahlung-Transaktion oder Zahlung-controller-Modell, weiß, dass es auf dem Postweg eine Kredit gegen die AR .
Denken Sie daran, dass, wenn Sie die Rechnung jemand, Sie sind "der Aufbau einer asset", durch die Schaffung einer "Forderung" . Daher ARs behandelt werden, als Vermögenswerte, es sei denn natürlich Sie haben nicht bezahlt worden für die Jahre.
HTH.