Schritt für Schritt zu Deiner ersten Datenbank

Eine gut strukturierte KI-Datenbank ist wie ein aufgeräumter Werkzeugkasten. Du findest schnell, was Du brauchst, und neue Werkzeuge haben ihren logischen Platz. Die meisten KI-Projekte brauchen ähnliche Grundstrukturen: User, Prompts, Ergebnisse, Kategorien.

Beginne mit dem Minimum und erweitere schrittweise. Eine Datenbank mit drei sinnvollen Tabellen ist besser als eine mit zwanzig theoretisch perfekten Tabellen, die Du nie nutzt. Deine Anforderungen werden sich ändern, plane dafür Flexibilität ein.

Erfolgreiche KI-Datenbanken wachsen organisch mit den Anforderungen. Starte mit den drei Kern-Entitäten: Users (wer nutzt das System), Prompts (was wird gefragt) und Results (was kommt heraus). Alles andere kann später hinzukommen.

Die User-Tabelle ist Dein Fundament. Selbst wenn Du zunächst alleine arbeitest, plane für mehrere Nutzer. Verschiedene Nutzer haben verschiedene Präferenzen, Zugriffsrechte und Nutzungsmuster. Das zu trennen spart später Kopfschmerzen.

Basis User-Tabelle:

CREATE TABLE users (

  id INT AUTO_INCREMENT PRIMARY KEY,

  username VARCHAR(50) UNIQUE NOT NULL,

  email VARCHAR(100) UNIQUE NOT NULL,

  password_hash VARCHAR(255),

  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

  active BOOLEAN DEFAULT TRUE

);

Prompts zu speichern ist bei KI-Systemen essentiell. Du willst erfolgreiche Prompts wiederverwenden, verschiedene Varianten testen und Verbesserungen nachvollziehen. Eine Prompt-Historie ist wie ein Rezeptbuch für KI-Anwendungen.

Versionierung von Prompts zahlt sich langfristig aus. Speichere nicht nur den aktuellen Stand, sondern auch vorherige Versionen. Was heute schlechter funktioniert, kann morgen bei geänderten Modellen wieder relevant werden.

Die Prompts-Tabelle sollte sowohl den Text als auch Metadaten speichern. Kategorie, Zielmodell, erwartete Ausgabelänge - diese Informationen helfen beim Filtern und Optimieren. JSON-Felder sind praktisch für flexible Metadaten.

Erweiterte Prompts-Tabelle:

CREATE TABLE prompts (

  id INT AUTO_INCREMENT PRIMARY KEY,

  user_id INT,

  title VARCHAR(200) NOT NULL,

  prompt_text TEXT NOT NULL,

  category VARCHAR(50),

  target_model VARCHAR(50),

  metadata JSON,

  version INT DEFAULT 1,

  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

  FOREIGN KEY (user_id) REFERENCES users(id)

);

Results zu speichern ermöglicht Analyse und Verbesserung. Welche Prompts liefern die besten Ergebnisse? Welche Modelle eignen sich für welche Aufgaben? Ohne Daten sind das nur Vermutungen, mit Daten werden es Erkenntnisse.

Datenschutz beachten: KI-Ergebnisse können sensible Informationen enthalten. Überlege Dir eine Aufbewahrungsstrategie: Wie lange speicherst Du Ergebnisse? Welche Daten anonymisierst Du? Compliance von Anfang an mitplanen.

Die Results-Tabelle verknüpft Prompts mit ihren Ausgaben. Zusätzliche Felder für Kosten, Dauer und Qualitätsbewertung machen die Daten später auswertbar. Ein rating-Feld hilft beim Lernen aus erfolgreichen Interaktionen.

Umfassende Results-Tabelle:

CREATE TABLE results (

  id INT AUTO_INCREMENT PRIMARY KEY,

  prompt_id INT NOT NULL,

  result_text TEXT,

  model_used VARCHAR(50),

  tokens_used INT,

  cost_cents INT,

  duration_ms INT,

  rating INT CHECK (rating BETWEEN 1 AND 5),

  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

  FOREIGN KEY (prompt_id) REFERENCES prompts(id)

);

Kategorien helfen beim Organisieren und Filtern. Statt komplizierte Tag-Systeme zu entwickeln, beginne mit einfachen Kategorien: "Content", "Code", "Analysis", "Creative". Du kannst später granularer werden, wenn die Anforderungen klarer sind.

Kategorien vs. Tags: Kategorien sind hierarchisch und exklusiv (ein Prompt gehört zu einer Kategorie), Tags sind flach und inklusiv (ein Prompt kann mehrere Tags haben). Für den Anfang reichen Kategorien, Tags kannst Du später hinzufügen.

Indizes sind bei KI-Datenbanken wichtig, weil Du oft nach verschiedenen Kriterien suchst. User-ID, Erstellungsdatum, Kategorie - diese Felder werden häufig in WHERE-Klauseln verwendet und profitieren von Indizierung.

Wichtige Indizes erstellen:

CREATE INDEX idx_prompts_user_id ON prompts(user_id);

CREATE INDEX idx_prompts_category ON prompts(category);

CREATE INDEX idx_prompts_created ON prompts(created_at);

CREATE INDEX idx_results_prompt_id ON results(prompt_id);

CREATE INDEX idx_results_model ON results(model_used);

CREATE INDEX idx_results_rating ON results(rating);

Constraints und Validierungen sparen Dir später Datenqualitätsprobleme. NOT NULL für wichtige Felder, UNIQUE für eindeutige Werte, CHECK für Wertebereiche. Diese kleinen Regeln verhindern große Probleme.

Nach meiner Erfahrung ist es einfacher, Constraints von Anfang an zu definieren als sie später hinzuzufügen. Schlechte Daten in der Datenbank sind schwer zu reparieren, verhinderte schlechte Daten sind gar kein Problem.

Timestamps sind bei KI-Anwendungen besonders wichtig. created_at für Erstellung, updated_at für Änderungen, used_at für letzte Nutzung. Diese Zeitstempel helfen bei Analyse, Cleanup und Debugging.

Automatische Timestamps:

ALTER TABLE prompts ADD COLUMN updated_at

TIMESTAMP DEFAULT CURRENT_TIMESTAMP

ON UPDATE CURRENT_TIMESTAMP;

ALTER TABLE users ADD COLUMN last_login

TIMESTAMP NULL;

JSON-Felder sind bei KI-Daten sehr nützlich. Prompt-Parameter, Model-Konfigurationen, Metadaten - vieles lässt sich flexibel als JSON speichern, ohne die Datenbankstruktur bei jeder Änderung anpassen zu müssen.

Soft Deletes statt Hard Deletes können bei KI-Anwendungen sinnvoll sein. Statt Datensätze zu löschen, markiere sie als gelöscht. So bleiben Referenzen intakt und Du kannst versehentliche Löschungen rückgängig machen.

JSON-Felder sind praktisch, aber schwerer zu durchsuchen und zu validieren. Nutze sie für Metadaten und Konfigurationen, aber nicht für Kern-Geschäftsdaten, nach denen Du häufig suchst.

Backup von Anfang an einplanen. mysqldump funktioniert gut für kleinere Datenbanken. Für größere Systeme plane Point-in-Time-Recovery und inkrementelle Backups. Ein Backup das Du nicht getestet hast, ist kein Backup.

Deine erste KI-Datenbank wird nicht perfekt sein. Das ist normal und richtig. Wichtig ist, dass sie funktioniert und erweiterbar ist. Perfektion kommt durch Iteration, nicht durch Design.

Mit dieser Grundstruktur hast Du eine solide Basis für KI-Anwendungen. User können Prompts erstellen, Ergebnisse werden gespeichert und ausgewertet, alles ist sauber kategorisiert. Der nächste Schritt: Typische Stolpersteine vermeiden.