Brands and Party Brands
The PRM module models brands as first-class entities, separate from the parties that own or carry them. The prm_brands view stores brand identity, while prm_party_brands is a many-to-many association that links brands to parties.
Why brands are separate from parties
A brand is not the same thing as a company. A single company may operate multiple brands (e.g. a parent company with several product lines), and a single brand may be represented by multiple parties (e.g. a franchise brand carried by independent franchisees). Modelling brands independently keeps the data normalised and accurately reflects these real-world patterns.
What a brand record contains
- Name — the brand name, with internationalisation (i18n) support for multiple languages
- Description — a description of the brand, also with i18n support
- Logo — an image representing the brand's primary logo
- Thumbnail — a smaller image for use in lists and compact displays
- Standard columns — active flag, start/end dates, audit fields
Internationalisation
Brand names and descriptions support internationalisation, meaning a brand can have its name and description stored in multiple languages. This is important for organisations operating across language boundaries — the same brand can be presented in the user's preferred language without duplicating the brand record.
Party brands
The prm_party_brands view is the many-to-many association between parties and brands. Each record captures:
- party_id — the party associated with this brand
- brand_id — the brand being associated
- Standard columns — active flag, start/end dates, audit fields
Typical use patterns
One party, multiple brands
A holding company that operates several consumer-facing brands would have one ORGANIZATION party linked to multiple brand records through party brands. Each brand maintains its own identity (name, logo, description) while the corporate relationship is captured through the join.
One brand, multiple parties
A franchise model is the classic example — the franchisor and each franchisee are separate parties, all associated with the same brand. This makes it possible to query "which parties carry this brand?" across the entire tenant.
Time-bounded brand associations
Party brand records carry start and end dates. When a party acquires or divests a brand, the dates on the party brand row capture when the association was active, preserving the historical record without deleting data.