tournament_scoring_systems
Tournament scoring configuration header table
SQL
Tournaments
Configuration
tournament_scoring_systems
Purpose
Stores named tournament scoring systems. Each scoring system is a reusable header record that defines a ruleset through its associated scoring bands.
Role in the system
tournament_scoring_systems
└── tournament_scoring_system_bands
↑
tournaments.scoring_system_id
Columns
| Column | Type | Null | Notes |
|---|---|---|---|
id | int unsigned | No | Primary key |
code | varchar(100) | No | Unique system code |
name | varchar(200) | No | Display name |
description | text | Yes | Optional descriptive text |
game_system | tinyint unsigned | No | Game system discriminator, default 1 |
is_active | tinyint(1) | No | Availability flag |
created_at | datetime | No | Creation timestamp |
updated_at | datetime | No | Last update timestamp |
Keys and indexes
PRIMARY KEY (id)UNIQUE KEY uq_tournament_scoring_systems_code (code)KEY idx_tournament_scoring_systems_game_system (game_system)KEY idx_tournament_scoring_systems_active (is_active)
Relationships
| Relationship | Type | Notes |
|---|---|---|
tournament_scoring_system_bands.scoring_system_id → tournament_scoring_systems.id | One-to-many | Band/range definitions |
tournaments.scoring_system_id → tournament_scoring_systems.id | One-to-many | Tournaments use one scoring system |
Used by
- TO event edit/save flows
- Tournament standings calculations
- Admin tournament configuration
Design notes
- This is a reusable configuration table, not event-specific data
- The actual points-difference-to-tournament-points logic lives in child bands
game_systemis numeric, so meaning should be documented centrally in application logic
Risks
- Changing a scoring system in place can alter the meaning of tournaments already using it
game_systemvalues are opaque without external documentation
Recommended future improvements
- Version scoring systems rather than editing in place for live events
- Document
game_systemvalue meanings explicitly