Alle Beiträge
Projekt·22. September 2026·9 Min. Lesezeit

Eine Million Felder: was ein eigenes Projekt über Datenbanken lehrt

Warum echte Projekte schneller zum erfahrenen Entwickler machen als jeder Kurs. Am Beispiel unseres 1M-Pixel-Projekts: wie das Datenmodell entstanden ist, wo es wehtat und was aus 78 Modellen geworden ist.

Man kann Datenbanken lernen, indem man Kurse durcharbeitet. Man lernt sie schneller, wenn echte Käufe hereinkommen und ein Fehler bedeutet, dass jemand für etwas bezahlt hat, das er nicht bekommen hat.

Unser 1M-Pixel-Projekt ist so ein Fall. Eine digitale Wand aus einer Million Feldern, ein Pixel kostet einen Euro, wer kauft, gestaltet seine Fläche und bekommt ein Zertifikat. Die Idee passt in einen Satz. Das Datenmodell inzwischen nicht mehr.


Der Stand heute, in Zahlen

GrößeWert
Modelle im Schema78
Aufzählungstypen21
Beziehungen zwischen Modellen93
Indizes im Schema156
Zeilen Schemadatei, davon 596 Kommentar2751
Tabellen in der Datenbank79
Dateien im Quellcode847

Das ist kein Ausweis für Qualität. Es ist der ehrliche Preis dafür, dass aus einer Idee ein Betrieb wurde: Kauf und Zahlung, Zertifikate, Auszeichnungen, Gemeinschaft, Spielhalle, Mails, Einwilligungen, Auswertung. Jedes davon zieht Tabellen nach sich.

Warum ein Projekt schneller lehrt als ein Kurs

In einem Kurs sind die Daten sauber. Im Projekt nicht. Vier Dinge lernt man nur draußen.

  • Gleichzeitigkeit. Zwei Menschen kaufen dieselbe Fläche in derselben Sekunde. Ein Kurs nennt das eine Randbedingung. In Wirklichkeit ist es Dienstagabend.
  • Teilfehler. Die Zahlung klappt, das Anlegen nicht. Was jetzt? Wer diese Frage einmal nachts beantwortet hat, baut danach anders.
  • Rückwärtskompatibilität. Ein Feld umbenennen ist leicht, solange niemand Daten hat.
  • Wiederholung. Ein Bezahldienst schickt dasselbe Ereignis zweimal. Wenn der Code das nicht erwartet, entstehen zwei Rechnungen.

Wie das Modell gewachsen ist

Am Anfang waren es drei Tabellen: Fläche, Käufer, Kauf. Jede Erweiterung kam aus der Wirklichkeit, nicht aus einem Plan.

Der Block ist die Einheit, nicht das Pixel

Eine Million einzelne Zeilen wären die naive Lösung. Eine Fläche ist deshalb ein Block mit Ursprung, Breite, Höhe und der Anzahl der Felder. Das Bild liegt als Farbliste am Block, nicht als Million Datensätze. Damit bleibt die Wand auch bei voller Belegung schnell.

Reservierung vor Kauf

Zwischen Auswahl und Zahlung liegen Minuten. In dieser Zeit muss die Fläche belegt sein, aber noch nicht verkauft. Also hat ein Block einen Zustand und eine Reservierung, die abläuft. Ohne das gibt es genau einen Abend, an dem zwei Menschen dasselbe Feld bezahlen.

Käufer und Sammlung sind zwei Dinge

Der Käufer ist die Seite der Zahlung, mit Adresse aus dem Bezahldienst. Die Sammlung ist die anmeldelose Identität mit Vorrat, Werken und Auszeichnungen. Beides über die Adresse verbunden, und zwar über eine zweite Spalte mit der kleingeschriebenen Fassung. Der Grund steht in unserem Code als Kommentar: Wer sich mit großem Anfangsbuchstaben eintrug, fand seine eigene Sammlung nicht wieder.

Einlösen erzeugt neue Werke

Pixel kann man sammeln und später zu einem größeren Werk zusammenlegen. Damit braucht es Stapel, Herkunft und die Regel, was mit den alten Flächen passiert. Aus einer einfachen Kauffunktion wurde ein kleines Lagersystem.

Das Zertifikat ist ein eigener Gegenstand

Nummer, Kennung, Adresse, Auszeichnungen, Ansichten, Likes. Es wird geteilt, verlinkt und in Stories gepostet, also muss es stabil bleiben, auch wenn sich das Werk ändert.

Die vier Lektionen, die geblieben sind

  • Ein Ort für die Wahrheit. Der Vorrat einer Sammlung wird nicht an drei Stellen mitgeführt. Er steht an einer und wird berechnet, nicht geschätzt.
  • Jeder Schreibweg braucht einen Riegel. Kauf, Zahlung, Einlösen laufen über Schlüssel, die eine Wiederholung erkennen. Ein Bezahldienst wiederholt, das ist kein Fehler, sondern Alltag.
  • Indizes kommen aus der Not, nicht aus dem Lehrbuch. Die 156 im Schema sind fast alle aus einer langsamen Abfrage entstanden, die jemand gemeldet hat.
  • Kommentare sind Teil des Modells. 596 der 2751 Zeilen erklären, warum etwas so ist. In einem Jahr ist genau das der Unterschied zwischen weiterarbeiten und neu bauen.

Was schiefging, offen gesagt

Eine Sicherung, die es zu geben schien, war jahrelang leer, weil ein Skript den Fehler der falschen Stelle prüfte. Ein Arbeiter für Zahlungen lief nicht, sodass Geld ankam und die Fläche nicht verkauft wurde. Ein Belastungstest mit einer Million Sammlungen zeigte eine Bremse, die sich umgehen ließ, eine Suche ohne Index und ein Leck im Speicher.

Alle drei waren vorher unsichtbar. Genau das ist der Grund, weshalb ein echtes Projekt lehrreicher ist als jede Übung: Es zeigt die Fehler, an die man nicht denkt.

Was wir daraus in Kundenprojekte mitnehmen

Sehr viel. Das Muster mit Motor und Oberfläche steht heute im Kundenportal, die Regel mit dem einen Ort für die Wahrheit ebenso, und die Brücke, über die das Portal die Pixel-Sammlung eines Kunden anzeigt, ist die gleiche Bauart wie beim Chatbot. Wie das zusammenhängt, steht in API und MCP.

Der Rat, wenn du selbst anfängst

  • Baue etwas, das echte Nutzer hat, und sei es ein einziger.
  • Nimm Geld an, sobald es seriös geht. Zahlungen erzwingen Sorgfalt.
  • Schreibe in das Schema, warum ein Feld existiert.
  • Miss, bevor du optimierst. Und teste unter Last, bevor es jemand anderes tut.

Die Wand steht unter pixel.lifebpm.de. Jedes bunte Feld dort ist ein Stück Lehrgeld.

Hat es dir geholfen? Teile es.

Weiterlesen