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)

vendor_products_details (Fees per Year)

vendor_products_users (User Allocations)

vendor_products (Product Catalog)

The main product catalog table that stores products offered by each vendor.
Field NameTypeDescription
idnumberUnique identifier for the product
namestringProduct name
vendor_idnumberForeign key to vendors table
delivery_method_idnumberForeign key to data_delivery_types table (optional)
created_atstringTimestamp when product was created
updated_atstringTimestamp when product was last updated
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.
Field NameTypeDescription
idnumberUnique identifier for the detail record
contract_idnumberForeign key to contracts table
product_idnumberForeign key to vendor_products table
yearnumberFiscal year for this fee
feesnumberAnnual fee amount for this product in this year (optional)
n_usersnumberNumber of users for this product in this year (optional)
user_idstringUser who created/modified this record (optional)
created_atstringTimestamp when record was created
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.
Field NameTypeDescription
idnumberUnique identifier for the user record
contract_idnumberForeign key to contracts table (optional)
product_idnumberForeign key to vendor_products table (optional)
number_of_usersnumberNumber of users allocated (optional)
created_atstringTimestamp when record was created
updated_atstringTimestamp when record was last updated
Relationships:
  • Belongs to: contracts (via contract_id)
  • Belongs to: vendor_products (via product_id)

Last Updated: 11/6/2025