# personnel_state ## Purpose The **personnel_state** table stores dynamic operational status information for personnel. It is used to track real-time conditions such as assigned tasks, health status and last system update time. This table is separated from the main personnel registry to ensure a clear distinction between static identity data and runtime state. ## Columns | Field | Type | Description |--------------|-----------|--------------------------------------------------------| | id_per | MEDIUMINT | Unique personnel identifier (PK, FK) | task_state | ENUM | Current operational task state of the personnel | health_state | ENUM | Current medical/physical condition of the personnel | last_update | DATETIME | Timestamp of the last `task_state` update ------------------------------------------------------------------------------------| ### ENUM values - task_state = ('idle','on_task','assigned','unknown') - health_state = ('normal','injured','critical','unknown') ## Relationships - References **personnel.id_per** through **id_per** to maintain a runtime state record for each personnel. ## Rules - Each personnel has maximum one corresponding state entry. - Unavailable personnel must have `task_state` value 'unknown' - Retired and deceased personnel must not have a row in **personnel_state**. ## Example output +--------+------------+--------------+---------------------+ | id_per | task_state | health_state | last_update | +--------+------------+--------------+---------------------+ | 1 | idle | normal | 2026-06-04 23:17:16 | +--------+------------+--------------+---------------------+