Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Created May 25, 2026 17:45
Show Gist options
  • Select an option

  • Save thinkphp/daf99f53050a3a9e38eee62ddafdeeee to your computer and use it in GitHub Desktop.

Select an option

Save thinkphp/daf99f53050a3a9e38eee62ddafdeeee to your computer and use it in GitHub Desktop.
introducere-advancedDB
1. Introduction
This report presents the physical database design for a multi-sport tournament management system. The system is modelled after real-world events such as the Commonwealth Games and the European Championships (European Athletics, 2025). The design covers data management across multiple sports, scheduling, results recording, standings calculation, and performance reporting.
The physical model has been developed in accordance with the requirements of the assignment brief and is presented as a crow's foot Enhanced Entity-Relationship Diagram (EERD) created using Lucidchart. This report accompanies that diagram and provides the design assumptions, rationale, and justification for key architectural decisions including the chosen inheritance strategy, denormalisation approach, and non-key indexing.
2. Design Assumptions and Rationale
A number of assumptions were made during the design process to resolve ambiguities in the scenario and to reflect realistic tournament management requirements. These are documented below alongside their rationale.
2.1 Tournament and Sport Scope
Assumption
The tournament supports multiple concurrent sports (e.g., football, swimming, athletics). Each sport operates independently with its own teams, schedules, and results.
This assumption is drawn directly from the requirement for data management across multiple sports and is consistent with the structure of real-world multi-sport events. The TOURNAMENT entity acts as the root of the hierarchy, with each SPORT entity linked via a foreign key. This enforces referential integrity and allows sport-specific queries without cross-contamination of data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment