Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:18:33 +08:00
commit 004b6a55c1
8 changed files with 320 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
{
"name": "database-schema-designer",
"description": "Design and visualize database schemas with normalization guidance, relationship mapping, and ERD generation",
"version": "1.0.0",
"author": {
"name": "Claude Code Plugins",
"email": "[email protected]"
},
"skills": [
"./skills"
],
"commands": [
"./commands"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# database-schema-designer
Design and visualize database schemas with normalization guidance, relationship mapping, and ERD generation

161
commands/design-schema.md Normal file
View File

@@ -0,0 +1,161 @@
---
description: Design database schemas with best practices
---
# Database Schema Designer
You are a database schema design expert. Help users create normalized, efficient database schemas.
## Design Principles
1. **Normalization**
- First Normal Form (1NF): Atomic values
- Second Normal Form (2NF): No partial dependencies
- Third Normal Form (3NF): No transitive dependencies
- BCNF: Boyce-Codd Normal Form
- When to denormalize for performance
2. **Relationships**
- One-to-One: User ↔ Profile
- One-to-Many: User → Posts
- Many-to-Many: Students ↔ Courses (join table)
- Self-referential: Employee → Manager
3. **Data Types**
- Choose appropriate types
- Consider storage efficiency
- Plan for scalability
- Use constraints effectively
4. **Indexing Strategy**
- Primary keys
- Foreign keys
- Unique constraints
- Composite indexes
- Covering indexes
## Schema Design Checklist
- [ ] All tables have primary keys
- [ ] Foreign keys are indexed
- [ ] Appropriate data types used
- [ ] NULL handling considered
- [ ] Unique constraints where needed
- [ ] Default values defined
- [ ] Timestamps (created_at, updated_at)
- [ ] Soft delete support (deleted_at)
- [ ] Proper normalization level
- [ ] Performance indexes identified
## Example Schema (E-commerce)
```sql
-- Users table
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Products table
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
stock_quantity INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Orders table
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
total DECIMAL(10, 2) NOT NULL,
status VARCHAR(50) DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Order items (Many-to-Many join table)
CREATE TABLE order_items (
id SERIAL PRIMARY KEY,
order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE,
product_id INTEGER REFERENCES products(id),
quantity INTEGER NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
-- Indexes
CREATE INDEX idx_orders_user_id ON orders(user_id);
CREATE INDEX idx_order_items_order_id ON order_items(order_id);
CREATE INDEX idx_order_items_product_id ON order_items(product_id);
```
## ERD Representation (Mermaid)
```mermaid
erDiagram
USERS ||--o{ ORDERS : places
ORDERS ||--|{ ORDER_ITEMS : contains
PRODUCTS ||--o{ ORDER_ITEMS : included_in
USERS {
int id PK
string email UK
string password_hash
timestamp created_at
}
PRODUCTS {
int id PK
string name
decimal price
int stock_quantity
}
ORDERS {
int id PK
int user_id FK
decimal total
string status
timestamp created_at
}
ORDER_ITEMS {
int id PK
int order_id FK
int product_id FK
int quantity
decimal price
}
```
## Common Patterns
### Audit Trail
```sql
ALTER TABLE table_name ADD COLUMN created_by INTEGER REFERENCES users(id);
ALTER TABLE table_name ADD COLUMN updated_by INTEGER REFERENCES users(id);
```
### Soft Delete
```sql
ALTER TABLE table_name ADD COLUMN deleted_at TIMESTAMP NULL;
CREATE INDEX idx_table_deleted_at ON table_name(deleted_at);
```
### Versioning
```sql
ALTER TABLE table_name ADD COLUMN version INTEGER DEFAULT 1;
```
## Output Format
Provide:
1. SQL CREATE TABLE statements
2. Relationship diagram (mermaid ERD)
3. Index recommendations
4. Normalization analysis
5. Potential issues and solutions

61
plugin.lock.json Normal file
View File

@@ -0,0 +1,61 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:jeremylongshore/claude-code-plugins-plus:plugins/database/database-schema-designer",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "39a6d7913e32e01f1691022768589173bb421231",
"treeHash": "6f2c3416171c6fc8f03ec05e25631ca7aba51e13baf3c668537e724a68450488",
"generatedAt": "2025-11-28T10:18:21.401403Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "database-schema-designer",
"description": "Design and visualize database schemas with normalization guidance, relationship mapping, and ERD generation",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "1dae624a626b4557d6d645817ea2d77b888e47d04b22ac3d73b26a40c43bb4c7"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "0b43a029e5239f7d8d80482868fbd4590de7f21d6407aeea54a7542bf58646e5"
},
{
"path": "commands/design-schema.md",
"sha256": "770e38c94e91b9ca20fe22b584ef19a4dcd06be0be3bda0033fea72eaf2d57aa"
},
{
"path": "skills/database-schema-designer/SKILL.md",
"sha256": "7a1135c372dc70947652fa5071db62add5122603b53ef105800dcb5d4bfd880d"
},
{
"path": "skills/database-schema-designer/references/README.md",
"sha256": "4439b331aea5c9b4edaa449287b5bcf50c56c764e930f79f18a03c600ec38502"
},
{
"path": "skills/database-schema-designer/scripts/README.md",
"sha256": "079453ac94a2643b5db5714cac805126174a0ad7758f73ef965750e50c06b544"
},
{
"path": "skills/database-schema-designer/assets/README.md",
"sha256": "fe5b684daacdb520c38fd39dfd1f64ff12868d59c2f0d1a48efdbfc6482adfef"
}
],
"dirSha256": "6f2c3416171c6fc8f03ec05e25631ca7aba51e13baf3c668537e724a68450488"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}

View File

@@ -0,0 +1,58 @@
---
name: designing-database-schemas
description: |
This skill enables Claude to design and visualize database schemas. It leverages normalization guidance (1NF through BCNF), relationship mapping, and ERD generation to create efficient and well-structured databases. Use this skill when the user requests to "design a database schema", "create a database model", "generate an ERD", "normalize a database", or needs help with "database design best practices". The skill is triggered by terms like "database schema", "ERD diagram", "database normalization", and "relational database design".
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
version: 1.0.0
---
## Overview
This skill assists in designing robust and normalized database schemas. It provides guidance on normalization principles, helps map relationships between entities, generates ERD diagrams for visualization, and ultimately produces SQL CREATE statements.
## How It Works
1. **Schema Definition**: Claude analyzes the user's request to understand the application's data requirements.
2. **Normalization & Relationship Mapping**: Claude applies normalization principles (1NF to BCNF) and defines relationships between entities (one-to-one, one-to-many, many-to-many).
3. **ERD Generation**: Claude generates a Mermaid diagram representing the Entity-Relationship Diagram.
4. **SQL Generation**: Claude creates SQL CREATE statements for the tables, columns, indexes, and constraints.
## When to Use This Skill
This skill activates when you need to:
- Design a new database schema from scratch.
- Normalize an existing database schema.
- Generate an ERD diagram for a database.
- Create SQL CREATE statements for a database.
## Examples
### Example 1: Designing a Social Media Database
User request: "Design a database schema for a social media application with users, posts, and comments."
The skill will:
1. Design tables for users, posts, and comments, including relevant attributes (e.g., user_id, username, post_id, content, timestamp).
2. Define relationships between the tables (e.g., one user can have many posts, one post can have many comments).
3. Generate an ERD diagram visualizing the relationships.
4. Create SQL CREATE TABLE statements for the tables, including primary keys, foreign keys, and indexes.
### Example 2: Normalizing an E-commerce Database
User request: "Normalize a database schema for an e-commerce application with customers, orders, and products."
The skill will:
1. Analyze the existing schema for normalization violations.
2. Decompose tables to eliminate redundancy and improve data integrity.
3. Create new tables and relationships to achieve a normalized schema (e.g., separating product details into a separate table).
4. Generate SQL CREATE TABLE statements for the new tables and ALTER TABLE statements to modify existing tables.
## Best Practices
- **Normalization**: Always aim for at least 3NF to minimize data redundancy and improve data integrity. Consider BCNF for more complex scenarios.
- **Indexing**: Add indexes to frequently queried columns to improve query performance.
- **Relationship Integrity**: Use foreign keys to enforce referential integrity and prevent orphaned records.
## Integration
This skill can be integrated with other Claude Code plugins, such as a SQL execution plugin, to automatically create the database schema in a database server. It can also work with a documentation plugin to generate documentation for the database schema.

View File

@@ -0,0 +1,7 @@
# Assets
Bundled resources for database-schema-designer skill
- [ ] schema_template.json: A JSON template for defining database schemas.
- [ ] example_schemas/: Directory containing example database schemas for various applications (e.g., e-commerce, social media, CRM).
- [ ] erd_examples/: Directory containing example ERD diagrams in Mermaid syntax.

View File

@@ -0,0 +1,8 @@
# References
Bundled resources for database-schema-designer skill
- [ ] normalization_rules.md: Detailed explanation of database normalization rules (1NF through BCNF).
- [ ] erd_syntax.md: Documentation on Mermaid ERD syntax.
- [ ] database_design_best_practices.md: Industry-standard database design patterns and anti-patterns.
- [ ] sql_dialect_differences.md: Highlights differences in SQL syntax across different database systems (e.g., PostgreSQL, MySQL, SQLite).

View File

@@ -0,0 +1,7 @@
# Scripts
Bundled resources for database-schema-designer skill
- [ ] schema_validation.py: Validates a database schema against best practices and normalization rules.
- [ ] erd_generator.py: Generates a Mermaid ERD diagram from a database schema definition.
- [ ] sql_generator.py: Generates SQL CREATE statements from a database schema definition.