Skip to main content
Products have their own relational structure separate from the main contract fields. A contract can have multiple products, each with yearly fees and user allocations.

Schema Overview

Products are organized across three related tables:

vendor_products (Product Catalog)

The main product catalog table that stores products offered by each vendor. Relationships:
  • Belongs to: vendors (via vendor_id)
  • Belongs to: data_delivery_types (via delivery_method_id)
  • Has many: vendor_products_details
  • Has many: vendor_products_users

vendor_products_details (Annual Fees)

Stores the actual fees charged per product, per year, per contract. This is where pricing information lives. Relationships:
  • Belongs to: contracts (via contract_id)
  • Belongs to: vendor_products (via product_id)
Key Concept: Each product can have different fees for different years within the same contract, enabling multi-year pricing structures.

vendor_products_users (User Allocations)

Tracks user count information for products within contracts. Relationships:
  • Belongs to: contracts (via contract_id)
  • Belongs to: vendor_products (via product_id)