スキル一覧に戻る
xmark168

database-model

by xmark168

4🍴 0📅 2026年1月12日
GitHubで見るManusで実行

SKILL.md


name: database-model description: Create Prisma schema models with relations and indexes. Use when designing database schemas, adding models, or defining entity relationships.

⚠️ CRITICAL - DO NOT MODIFY

// prisma/schema.prisma - NEVER change these blocks
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

Import: import { prisma } from '@/lib/prisma' (already exists)

Model Conventions

model Product {
  id        String   @id @default(uuid())
  name      String
  price     Float    // Use Float for UI (returns number directly)
  isActive  Boolean  @default(true)
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  category   Category @relation(fields: [categoryId], references: [id], onDelete: Cascade)
  categoryId String

  @@index([categoryId])
  @@index([name])
}

Rules:

  • Model names: PascalCase
  • Field names: camelCase
  • IDs: @id @default(uuid())
  • Always: createdAt, updatedAt
  • Always: @@index on foreign keys

Number Types

TypeReturnsUse Case
IntnumberCounts, whole numbers
FloatnumberPrices (recommended)
DecimalPrisma.DecimalFinancial (needs conversion)

Relations

One-to-Many

model Category {
  id       String    @id @default(uuid())
  name     String    @unique
  products Product[]
}

model Product {
  id         String   @id @default(uuid())
  category   Category @relation(fields: [categoryId], references: [id], onDelete: Cascade)
  categoryId String
  @@index([categoryId])
}

One-to-One

model User {
  id      String   @id @default(uuid())
  profile Profile?
}

model Profile {
  id     String @id @default(uuid())
  user   User   @relation(fields: [userId], references: [id], onDelete: Cascade)
  userId String @unique  // @unique = one-to-one
}

Many-to-Many

model Post {
  id   String @id @default(uuid())
  tags Tag[]  // Prisma handles junction table
}

model Tag {
  id    String @id @default(uuid())
  name  String @unique
  posts Post[]
}

NextAuth Models

User, Account, Session already exist in boilerplate. Just add relations:

model User {
  // ... existing fields
  posts Post[]  // Add your relations
}

After Schema Changes

DO NOT run db push manually. Runs automatically in validation phase.

NEVER

  • Modify datasource/generator blocks
  • Recreate lib/prisma.ts
  • Recreate User/Account/Session
  • Forget @@index on foreign keys
  • Skip onDelete: Cascade on children
  • Run db push during implementation

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です