database-design
데이터베이스 설계와 스키마 결정 마스터하기
개발자들은 데이터베이스 선택과 스키마 설계의 함정에서 어려움을 겪습니다. 이 스킬은 상황에 맞는 데이터베이스 선택, 스키마 설계, 쿼리 최적화를 위한 의사결정 프레임워크를 가르칩니다.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "database-design". I need to choose a database for a real-time chat application with 10,000 concurrent users, global distribution, and sub-50ms latency requirements.
Résultat attendu:
전 세계 분산과 엄격한 지연 시간 요구가 있는 실시간 채팅이라면, 상태/메시지 메타데이터용으로 Turso(엣지 SQLite)를 고려하고, 내구성 있는 저장을 위해 기본 PostgreSQL 인스턴스를 결합하세요. Turso는 엣지 배포로 지연 시간을 줄이고, PostgreSQL은 복잡한 쿼리와 트랜잭션을 처리합니다. 대안: 글로벌 브랜칭이 가능한 MySQL 호환성의 PlanetScale.
Utilisation de "database-design". Should I normalize my user preferences table or store as JSONB?
Résultat attendu:
다음의 경우 JSONB로 저장하세요: 선호도가 개별적으로 거의 조회되지 않고, 스키마가 자주 변하며, 항상 전체 세트를 가져오는 경우. 다음의 경우 정규화하세요: WHERE 절에서 특정 선호도를 조회해야 하거나, 선호도별로 업데이트 빈도가 다르거나, 외래 키 제약조건이 필요한 경우. 하이브리드 접근: 유연한 선호도는 JSONB로, 자주 필터링되는 설정은 정규화 테이블로.
Audit de sécurité
SûrAll 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.
Score de qualité
Ce que vous pouvez construire
새 프로젝트 데이터베이스 설정
MVP를 만드는 스타트업 창업자는 PostgreSQL, SQLite, 서버리스 옵션 중 무엇을 선택할지 안내가 필요합니다. 이 스킬은 확장성 요구, 예산, 배포 선호도에 기반한 의사결정 트리를 제공합니다.
스키마 설계 리뷰
새 기능을 설계하는 백엔드 엔지니어는 사용자 관계, 타임스탬프, 외래 키 제약조건 모델링에 대한 도움이 필요합니다. 이 스킬은 정규화의 트레이드오프와 관계 패턴을 검토합니다.
쿼리 성능 문제 해결
느린 쿼리를 겪는 개발자는 인덱싱 전략과 N+1 문제를 이해해야 합니다. 이 스킬은 EXPLAIN ANALYZE 해석과 복합 인덱스 설계를 설명합니다.
Essayez ces prompts
{project_type} 애플리케이션을 만들고 있으며 예상 사용자 수는 {expected_users}명입니다. 예산은 {budget_level}이고 {specific_requirements}가 필요합니다. 데이터베이스 선택 가이드를 바탕으로 최적의 데이터베이스 옵션을 추천하고 트레이드오프를 설명해 주세요.{table_name} 테이블의 스키마 설계를 리뷰해 주세요. {data_fields}를 저장하고 {related_tables}와의 관계가 필요합니다. 제 접근이 정규화 원칙을 따르는지, 적절한 인덱스를 갖추었는지, 올바른 관계 유형을 사용하는지 확인해 주세요.{query_description}에 대한 쿼리가 {execution_time}가 걸립니다. 다음은 EXPLAIN ANALYZE 출력입니다: {explain_output}. 병목 지점을 식별하고 구체적인 인덱싱 또는 쿼리 재구성 전략을 추천해 주세요.다운타임 없이 {current_schema}에서 {target_schema}로 마이그레이션해야 합니다. 테이블에는 {row_count}개의 행이 있으며 {traffic_level} 수준의 트래픽을 처리합니다. 마이그레이션 가이드의 기법을 사용해 전략을 설계해 주세요.Bonnes pratiques
- 타임존 인식을 위해 TIMESTAMPTZ로 created_at과 updated_at 타임스탬프를 항상 정의
- 분산 시스템에서는 UUID 또는 ULID 기본 키를 사용해 열거 공격을 피하고 오프라인 ID 생성을 가능하게 함
- 가장 일반적인 쿼리 패턴에 맞춰 복합 인덱스를 만들되, 동등 조건 컬럼을 범위 조건 컬럼보다 먼저 배치
Éviter
- 간단한 애플리케이션에서 SQLite로 충분한데도 PostgreSQL을 기본으로 선택해 불필요한 인프라 복잡성을 추가
- 쓰기 성능 영향과 낮은 카디널리티 비효율을 고려하지 않고 모든 컬럼에 인덱스를 생성
- 프로덕션 쿼리에서 필요한 컬럼을 명시적으로 선택하지 않고 SELECT * 사용