Zurück zum Blog
Technology6 Min. Lesezeit

Wie eine Rechnung Gespeichert Wird: Eine Zeile pro Position, Plus eine Vollständige Kopie

IN
Invoice Generator TeamAutor
28. Oktober 2026Veröffentlicht
Auch verfügbar in:EnglishNederlands

Eine Rechnung sieht aus wie ein einzelnes Dokument, daher würde man eine einzelne Zeile in einer Datenbank erwarten. Das ist nicht so. Jede gespeicherte Rechnung besteht aus mehreren Zeilen mit einer gemeinsamen ID, und jede Zeile enthält zusätzlich eine vollständige Kopie der ganzen Rechnung. Dieser Aufbau erklärt, wie sich Rechnungen durchsuchen lassen, wie Änderungen gespeichert werden und warum sich die ID einer Rechnung nie ändert, obwohl ihre Zeilen bei jedem Speichern neu geschrieben werden.

Eine Zeile pro Position

Wenn Sie eine Rechnung speichern, schreibt der Server eine Zeile pro Rechnungsposition. Jede Zeile enthält Beschreibung, Menge und Preis dieser Position, zusammen mit den Feldern, die jede Rechnung hat: Rechnungsnummer, Empfänger und Absender, Gesamtbetrag, Währung, Rechnungs- und Fälligkeitsdatum, Zahlungsbedingungen, Notizen, Bedingungen und Status. Eine Rechnung mit fünf Positionen ergibt also fünf Zeilen. Eine Rechnung ohne Positionen erhält trotzdem eine Zeile, bei der die Positionsspalten leer bleiben.

Durch die Aufteilung in Zeilen lassen sich Positionen leicht abfragen. Berichte und Suchen können mit einzelnen Positionen und Mengen arbeiten, ohne das ganze Dokument zu öffnen.

Die Gruppen-ID Hält die Zeilen Zusammen

Alle Zeilen einer Rechnung teilen sich eine Rechnungsgruppen-ID, die einmal beim ersten Speichern der Rechnung erzeugt wird. Diese Gruppen-ID ist die eigentliche Identität der Rechnung. Freigabelinks, Zahlungen, Kommentare, die Ansichtsverfolgung, das Prüfprotokoll und wiederkehrende Planungen verweisen alle auf die Gruppen-ID, nie auf eine einzelne Zeile. Eine Rechnung laden heißt: alle Zeilen mit dieser Gruppen-ID in Ihrem Arbeitsbereich abrufen und zusammenführen.

Jede Zeile Enthält Auch eine Vollständige Kopie

Einzelne Spalten können nicht alles auf einer Rechnung abbilden: Rabatte, Steuereinstellungen, benutzerdefinierte Felder, Zahlungspläne, Designentscheidungen wie Schriftart und Akzentfarbe sowie erfasste Zahlungen. Deshalb enthält jede Zeile zusätzlich eine vollständige JSON-Kopie der kompletten Rechnung. Wenn die App eine Rechnung anzeigt, liest sie diese Kopie. Die einzelnen Spalten dienen vor allem der Suche, und die Kopie setzt das Dokument genau so wieder zusammen, wie Sie es gespeichert haben.

Rechnungen, die gespeichert wurden, bevor es die vollständige Kopie gab, werden weiterhin unterstützt. Hat eine Zeile keine Kopie, baut die App die Rechnung aus den einzelnen Spalten wieder auf und berechnet den Betrag jeder Position als Menge mal Preis.

Änderungen Ersetzen Alle Zeilen in Einer Transaktion

Beim Speichern einer Änderung werden Zeilen nicht an Ort und Stelle angepasst. Innerhalb einer Datenbanktransaktion löscht der Server alle Zeilen mit dieser Gruppen-ID und fügt einen neuen Satz ein, der aus der bearbeiteten Rechnung erstellt wird. So wird jede Art von Änderung gleich behandelt: Eine neue Position, eine gelöschte Position oder eine geänderte Reihenfolge ergibt einfach einen neuen Satz Zeilen.

Weil das in einer Transaktion geschieht, sieht niemand jemals eine halb gespeicherte Rechnung. Andere Anfragen sehen entweder die alten Zeilen oder die neuen. Der Protokolleintrag für die Änderung und eine eventuelle Anpassung der wiederkehrenden Planung werden in derselben Transaktion geschrieben, sodass das Protokoll nie eine Änderung meldet, die nicht stattgefunden hat.

Die Gruppen-ID ändert sich nie, daher funktioniert alles, was auf die Rechnung verweist, auch nach dem Ersetzen der Zeilen weiter. Zahlungen, Kommentare und Freigabelinks bleiben bei jeder Änderung verknüpft.

Wie die Währung Erfasst Wird

Jede Zeile speichert die Währung als Code und Symbol zusammen, etwa EUR(€). Dieser Wert stammt entweder aus Währungscode und Symbol der Rechnung oder aus der eingebauten Liste von Ländern und ihren Währungen, anhand der ausgewählten Währung. Die vollständige Kopie enthält Code und Symbol zusätzlich als eigene Felder. Weil die Währung auf jeder Rechnung erfasst wird und nicht nur als Einstellung des Arbeitsbereichs, kann ein Arbeitsbereich Rechnungen in verschiedenen Währungen enthalten, und Berichte können für jede Währung eigene Summen ausweisen, statt alles zusammenzurechnen.

Warum Das für Sie Wichtig Ist

Meist bemerken Sie von diesem Aufbau nichts, doch er steckt hinter einigen Garantien, auf die Sie sich verlassen. Speichern geschieht ganz oder gar nicht, eine Rechnung kann also nicht halb gespeichert werden. Alles, was mit einer Rechnung verknüpft ist, bleibt beim Bearbeiten verknüpft. Und die Rechnung, die Sie wieder öffnen, wird aus der vollständigen Kopie aufgebaut, die Sie gespeichert haben, ohne dass etwas verloren geht.

Ähnliche Artikel

Technology5 Min. Lesezeit

Warum Anmeldeversuche Begrenzt Werden

Anmeldung, Registrierung, Zwei-Faktor-Prüfungen und das erneute Senden von Bestätigungs-E-Mails teilen sich ein Kontingent von 10 Versuchen pro Stunde und IP-Adresse. Das ist deutlich strenger als die Grenze für normale Anfragen in der App. Darum unterscheiden sich die Zahlen.

IN
Invoice Generator Team16. Oktober 2026
Technology6 Min. Lesezeit

Wie Registrierung und E-Mail-Verifizierung Tatsächlich Funktionieren

Beim Anlegen eines Kontos wird in derselben Datenbanktransaktion ein persönlicher Arbeitsbereich eingerichtet. Der Bestätigungslink ist 24 Stunden gültig, und wer auf einen abgelaufenen Link klickt, bekommt automatisch einen neuen zugeschickt.

IN
Invoice Generator Team14. Oktober 2026
Technology6 Min. Lesezeit

Wie Ihr Logo Beim Hochladen Gespeichert Wird

Ein als externe URL eingefügtes Logo wird serverseitig abgerufen, gegen eine 2-MB-Grenze und einen echten Bild-Inhaltstyp geprüft und vor dem Speichern in eine eigenständige Daten-URL umgewandelt.

IN
Invoice Generator Team4. Oktober 2026
Technology6 Min. Lesezeit

Warum Sie Nach Einer Stunde Abgemeldet Werden

Jedes Sitzungstoken läuft exakt nach einer Stunde ab, und es gibt keinen versteckten Aktualisierungsmechanismus, der es still und heimlich verlängert — plus die eine bewusste Ausnahme für Anmeldungen mit Zwei-Faktor-Authentifizierung.

IN
Invoice Generator Team28. September 2026
Technology6 Min. Lesezeit

Wie Kundenportal-Links Ablaufen

Ein Portallink ist standardmäßig 30 Tage gültig, prüft das Ablaufdatum bei jeder Anfrage statt im Voraus, und ordnet die Dokumente eines Kunden über einen exakten Abgleich zu — nicht über einen Fremdschlüssel.

IN
Invoice Generator Team26. September 2026
Technology6 Min. Lesezeit

Wie die Ansichtsverfolgung von Rechnungen Wirklich Funktioniert

Zwei getrennte Mechanismen erfassen, wann ein Kunde Ihre Rechnung öffnet — ein laufender Zähler und ein detailliertes Ereignisprotokoll — und ein passwortgeschützter Freigabelink zählt erst als angesehen, sobald das Passwort eingegeben wurde.

IN
Invoice Generator Team24. September 2026

Rechnungsstellung Gemeistert?

Setzen Sie Ihr Wissen in die Praxis um und erstellen Sie noch heute Ihre erste professionelle Rechnung.

Jetzt Rechnung Erstellen
Wie eine Rechnung Gespeichert Wird: Eine Zeile pro Position, Plus eine Vollständige Kopie | Invoice Generator