Compétences database-design
📦

database-design

Sûr

Meistere Datenbankdesign und Schema-Entscheidungen

Entwickler kämpfen mit Datenbank-Auswahlmöglichkeiten und Schema-Design-Fallstricken. Diese Fähigkeit lehrt Entscheidungsrahmen für die Auswahl von Datenbanken, das Design von Schemata und die Optimierung von Abfragen basierend auf dem Kontext.

Prend en charge: Claude Codex Code(CC)
🥉 76 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "database-design". Ich benötige eine Datenbank für eine Echtzeit-Chat-Anwendung mit 10.000 gleichzeitigen Benutzern, globaler Verteilung und Latenzanforderungen unter 50ms.

Résultat attendu:

Für globales Echtzeit-Chat mit strengen Latenzanforderungen erwägen Sie Turso (Edge SQLite) für Präsenz und Metadaten von Nachrichten, kombiniert mit einer primären PostgreSQL-Instanz für dauerhafte Speicherung. Turso bietet Edge-Bereitstellung mit reduzierter Latenz, während PostgreSQL komplexe Abfragen und Transaktionen handhabt. Alternative: PlanetScale für MySQL-Kompatibilität mit globalem Branching.

Utilisation de "database-design". Sollte ich meine Benutzerpräferenztabelle normalisieren oder als JSONB speichern?

Résultat attendu:

Als JSONB speichern, wenn: Präferenzen selten einzeln abgefragt werden, sich das Schema häufig entwickelt und Sie immer das komplette Set abrufen. Normalisieren, wenn: Sie spezifische Präferenzen in WHERE-Klauseln abfragen müssen, verschiedene Präferenzen unterschiedliche Aktualisierungsfrequenzen haben oder Sie Fremdschlüssel-Constraints benötigen. Hybrider Ansatz: JSONB für flexible Präferenzen mit einer normalisierten Tabelle für häufig gefilterte Einstellungen.

Audit de sécurité

Sûr
v1 • 2/24/2026

All static analyzer findings are false positives. The 'external_commands' detections are markdown code fence blocks (```) used for educational diagrams, not executable shell commands. The 'weak cryptographic algorithm' flags reference UUID/ULID discussions in documentation context. The schema_validator.py is a legitimate local Python script for Prisma schema validation. This is a documentation-only skill teaching database design principles.

8
Fichiers analysés
489
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

45
Architecture
100
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

Datenbank-Setup für neues Projekt

Ein Startup-Gründer, der einen MVP entwickelt, benötigt Anleitung bei der Wahl zwischen PostgreSQL, SQLite oder serverlosen Optionen. Die Fähigkeit bietet einen Entscheidungsbaum basierend auf Skalierbarkeitsbedarf, Budget und Bereitstellungspräferenzen.

Schema-Design-Überprüfung

Ein Backend-Ingenieur, der ein neues Feature entwirft, benötigt Hilfe bei der Modellierung von Benutzerbeziehungen, Zeitstempeln und Fremdschlüssel-Constraints. Die Fähigkeit überprüft Normalisierungs-Kompromisse und Beziehungsmuster.

Abfrageleistung-Fehlerbehebung

Ein Entwickler mit langsamen Abfragen muss Indexierungsstrategien und N+1-Probleme verstehen. Die Fähigkeit erklärt die Interpretation von EXPLAIN ANALYZE und das Design zusammengesetzter Indizes.

Essayez ces prompts

Anfänger: Datenbankauswahl
I am building a {project_type} application with {expected_users} users. My budget is {budget_level} and I need {specific_requirements}. Based on the database selection guide, recommend the best database option and explain the trade-offs.
Fortgeschrittener: Schema-Design-Überprüfung
Review my schema design for {table_name} table. I need to store {data_fields} with relationships to {related_tables}. Check if my approach follows normalization principles, has appropriate indexes, and uses the correct relationship types.
Experte: Abfrageoptimierung
My query for {query_description} is taking {execution_time}. Here is the EXPLAIN ANALYZE output: {explain_output}. Identify the bottleneck and recommend specific indexing or query restructuring strategies.
Experte: Migrationsstrategie
I need to migrate from {current_schema} to {target_schema} with zero downtime. The table has {row_count} rows and serves {traffic_level} traffic. Design a migration strategy using the techniques from the migrations guide.

Bonnes pratiques

  • Immer created_at und updated_at Zeitstempel mit TIMESTAMPTZ für Zeitzonenbewusstsein definieren
  • UUID oder ULID Primärschlüssel für verteilte Systeme verwenden, um Enumerationsangriffe zu vermeiden und Offline-ID-Generierung zu ermöglichen
  • Zusammengesetzte Indizes erstellen, die Ihren häufigsten Abfragemustern entsprechen, mit Gleichheits-Spalten vor Bereichsspalten

Éviter

  • Standardmäßig PostgreSQL für einfache Anwendungen wählen, bei denen SQLite ausreichen würde, was unnötige Infrastrukturkomplexität hinzufügt
  • Indizes auf jeder Spalte erstellen, ohne den Einfluss auf die Schreibleistung und die Ineffizienz bei niedriger Kardinalität zu berücksichtigen
  • SELECT * in Produktionsabfragen verwenden, anstatt explizit benötigte Spalten auszuwählen

Foire aux questions

Wann sollte ich SQLite gegenüber PostgreSQL wählen?
SQLite wählen für: eingebettete Anwendungen, lokale Entwicklung, leseintensive Workloads unter 100K Anfragen/Tag, Single-Writer-Szenarien oder wenn Einfachheit wichtiger ist als Features. PostgreSQL wählen für: gleichzeitige Schreibvorgänge, erweiterte SQL-Features (CTEs, Window Functions), Row-Level-Security, komplexe Transaktionen oder wenn Sie Nachverfolgbarkeit und Audit-Trails benötigen.
Was ist das N+1-Abfrageproblem und wie behebe ich es?
N+1 tritt auf, wenn Sie übergeordnete Datensätze abrufen (1 Abfrage) und dann iterieren, um zugehörige Datensätze abzurufen (N Abfragen). Beheben mit: JOINs zum Kombinieren von Daten in einer Abfrage, Eager Loading in ORMs, DataLoader für Batch-Verarbeitung in GraphQL oder Subqueries, um alle zugehörigen Datensätze auf einmal abzurufen. Immer EXPLAIN ANALYZE verwenden, um zu überprüfen, dass die Behebung funktioniert.
Wie entscheide ich zwischen Drizzle, Prisma und Kysely?
Drizzle: Leichtgewichtig, SQL-ähnliche Syntax, gut für Serverless und Edge. Prisma: Vollumfängliches ORM mit Migrationen, Typgenerierung und Studio-UI. Kysely: TypeScript-erster Abfragebuilder mit strikter Typsicherheit. Wählen Sie Drizzle für Minimalismus, Prisma für vollständige ORM-Anforderungen oder Kysely für typsicheren Abfragebau ohne ORM-Abstraktion.
Welche Spalten sollte ich für optimale Leistung indizieren?
Spalten indizieren, die verwendet werden in: WHERE-Klauseln zum Filtern, JOIN-Bedingungen für Beziehungen, ORDER BY zum Sortieren und Fremdschlüsselspalten für Beziehungsabfragen. Nicht indizieren: Spalten mit niedriger Kardinalität (Boolean, Geschlecht), Spalten, die selten in Abfragen verwendet werden, oder Tabellen mit starkem Schreibverkehr, bei denen Indexwartung Inserts verlangsamt.
Wie migriere ich sicher eine große Tabelle mit null Downtime?
Expand-and-Contract-Muster verwenden: Phase 1 (Expand) fügt neue Spalte/Tabelle hinzu und behält alte. Phase 2 füllt Daten auf und schreibt dual. Phase 3 migriert Lesevorgänge schrittweise. Phase 4 (Contract) entfernt alte Spalte/Tabelle nach Verifizierung. Batch-Verarbeitung für Backfill verwenden, um Lock-Contention zu vermeiden, und Feature-Flags für schrittweise Einführung.
Was ist der Unterschied zwischen Neon, Supabase und self-hosted PostgreSQL?
Neon: Serverless PostgreSQL mit Datenbank-Branching (wie Git), Auto-Scaling und Pay-per-Use-Preisen. Supabase: PostgreSQL plus Echtzeit-Subscriptions, Authentifizierung, Storage und Edge-Functions als Backend-Plattform. Self-hosted: Vollständige Kontrolle über Konfiguration, Erweiterungen und Kosten, erfordert aber Betriebsexpertise. Wählen Sie Neon für Serverless, Supabase für Full-Stack-Features, Self-hosted für Kontrolle.