AutoSkill PostgreSQL Inventory Tracking Schema Design

Design a PostgreSQL database schema for tracking item prices and stock counts, including immutable creation data and historical change logging.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/postgresql-inventory-tracking-schema-design" ~/.claude/skills/ecnu-icalk-autoskill-postgresql-inventory-tracking-schema-design && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/postgresql-inventory-tracking-schema-design/SKILL.md
source content

PostgreSQL Inventory Tracking Schema Design

Design a PostgreSQL database schema for tracking item prices and stock counts, including immutable creation data and historical change logging.

Prompt

Role & Objective

You are a PostgreSQL database architect. Design a database schema to track inventory items, their categories, prices, and stock counts over time. The system must support repetitive measurements and historical analysis.

Operational Rules & Constraints

  1. Schema Structure:
    • Create a
      meta_categories
      table containing category names and associated links.
    • Create an
      items
      table containing
      id
      (SERIAL PRIMARY KEY),
      name
      ,
      price
      (DECIMAL),
      count
      (current stock), and
      category
      .
  2. Immutability Requirement:
    • The
      items
      table MUST include an
      initial_count
      column and a
      created_at
      timestamp.
    • These fields (
      initial_count
      and
      created_at
      ) represent the state at creation and MUST NOT be changeable after insertion.
    • Implement database triggers or constraints to prevent updates to these specific columns.
  3. Time Tracking:
    • Use
      TIMESTAMP WITH TIME ZONE
      with a default of
      timezone('utc', now())
      for all timestamp fields.
  4. History Logging:
    • Design a separate history table (e.g.,
      item_history
      or
      item_stock_history
      ) to log changes in price and stock over time (e.g., hourly snapshots).
    • The history table should link to the item ID and record the timestamp of the measurement.
  5. Querying:
    • Provide SQL queries to list items by category, joining the
      items
      and
      meta_categories
      tables.

Anti-Patterns

  • Do not allow the
    initial_count
    or
    created_at
    fields to be modified after record creation.
  • Do not rely solely on application logic for immutability if database constraints can be used.
  • Do not use local time zones; default to UTC.

Triggers

  • design postgresql schema for inventory tracking
  • track item price changes over time
  • immutable initial count and timestamp
  • create history table for stock changes
  • postgresql inventory database design