Back to skills
SkillHub ClubDesign ProductFull StackData / AIDesigner

data-modeling

Dimensional modeling, normalization, and schema design for analytics.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
4
Hot score
81
Updated
March 20, 2026
Overall rating
C3.0
Composite score
3.0
Best-practice grade
B81.2

Install command

npx @skill-hub/cli install timequity-plugins-data-modeling

Repository

timequity/plugins

Skill path: vibe-coder/skills/data/data-modeling

Dimensional modeling, normalization, and schema design for analytics.

Open repository

Best for

Primary workflow: Design Product.

Technical facets: Full Stack, Data / AI, Designer.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: timequity.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install data-modeling into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/timequity/plugins before adding data-modeling to shared team environments
  • Use data-modeling for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: data-modeling
description: Dimensional modeling, normalization, and schema design for analytics.
---

# Data Modeling

## Dimensional Modeling

### Star Schema

```
        ┌─────────────┐
        │ dim_date    │
        └──────┬──────┘
               │
┌──────────┐   │   ┌──────────────┐
│dim_store │───┼───│  fct_sales   │
└──────────┘   │   └──────────────┘
               │
        ┌──────┴──────┐
        │dim_product  │
        └─────────────┘
```

### Fact Tables

```sql
CREATE TABLE fct_sales (
    sale_id BIGINT PRIMARY KEY,
    date_key INT REFERENCES dim_date(date_key),
    store_key INT REFERENCES dim_store(store_key),
    product_key INT REFERENCES dim_product(product_key),
    quantity INT,
    unit_price DECIMAL(10,2),
    total_amount DECIMAL(10,2),
    _loaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

### Dimension Tables

```sql
CREATE TABLE dim_product (
    product_key INT PRIMARY KEY,
    product_id VARCHAR(50),  -- Natural key
    name VARCHAR(255),
    category VARCHAR(100),
    subcategory VARCHAR(100),
    brand VARCHAR(100),
    -- SCD Type 2 fields
    valid_from DATE,
    valid_to DATE,
    is_current BOOLEAN
);
```

## SCD Types

| Type | Description | Use Case |
|------|-------------|----------|
| **Type 1** | Overwrite | Corrections |
| **Type 2** | New row + versioning | Track history |
| **Type 3** | Previous value column | Limited history |

## Normalization

| Form | Rule |
|------|------|
| **1NF** | Atomic values, no repeating groups |
| **2NF** | 1NF + no partial dependencies |
| **3NF** | 2NF + no transitive dependencies |

## Naming Conventions

- `dim_` prefix for dimensions
- `fct_` prefix for facts
- `stg_` prefix for staging
- `int_` prefix for intermediate
- Snake_case for columns
data-modeling | SkillHub