Select
A semantic Value Type offering a fixed list of inline options, storing stable integer identities instead of strings.
type: data-model · status: draft · abstraction: instance
What it is
A Select property provides a clear, predefined list of options configured directly within the property itself, rather than relying on external lookup tables. It serves as the primary mechanism for categorising records or tracking them through defined sequential stages. Because options are maintained as inline configurations, their visible labels can be updated or renamed at any time without triggering sweeping data migrations across existing records.
Multi-Select is intrinsically the exact same underlying model, simply configured to accept multiple choices simultaneously, ensuring consistency in how options are managed system-wide.
A crucial principle of the Select lifecycle is that options are never completely deleted. Instead, they are gracefully retired. This guarantees absolute historical accuracy: records that previously used a now-retired option will continue to display it seamlessly on read, but users will be prevented from applying that retired option to any new or newly updated records.
Why it exists
Business processes continually evolve, which means the terminology and stages they track must be able to change instantly without requiring downtime, complex database migrations, or data cleanup.
By embedding options directly within the property definition and separating their identity from their display labels, IMOS allows administrators to rename categories freely without altering stored data. The strict rule of retiring rather than deleting options protects the integrity of historical reporting. Consequently, users get the flexibility of an easily modifiable drop-down list, while the system guarantees strict historical data safety.
Relationships
Outgoing
- is an instance of → Value Type (many-to-one)
Incoming
- is distinct from ← Boolean — Boolean represents two truth values; Select is required when unknown, not applicable or further states are meaningful.
- is distinct from ← Status — Select categorises a Record; Status tracks it through a process and stores when the current stage was entered.
Neighbourhood
Stakeholder summaries
- Product — Provides user-configurable drop-down categorisation with built-in protections against deleting historic data options.
- Investor — Secures the integrity of historical reporting by eliminating sweeping, destructive database restructurings for simple label updates.
- Marketing — Categorise flawlessly. Create dynamic dropdown lists for things like workflow stages, and easily update them over time without losing past data.
- Engineering — A category type mapping localised string labels to strict integer identities, securing data integrity across historical edits.