4. Table Model (logical data model / ERD)
4.1. Design decisions
1. System architecture requires there to be three basic modules in Ariadne: System module (Ariadne Main), Current competition module and Archive module.
2. All data about the current competition are put is the module Current competition. The tables with Archive data are put in the Archive module, tables with System management data are put in the System module (which also contains Forms, queries and programming code).
3. With the Table Data Model for the Current competition, in principle more competitions can be held in the database at the same time. For reasons of safety (e.g. not having a chance that somehow data of two competitions get mixed, the current competition module is to hold data of only one competition.
4. Archive data is to viewed without a current competition attached.This means that for instance Category, Person and Club are also held in the Archive module. Archive results of a person have to be available in the current competition. Therefore some linking mechanism has to be established on Person between Current competition and Archive data.
4.2 Current Competition - Table Model
(indexes between parentheses (*) refer to modeling decisions)
4.2.1 Current Competition Table Model - modeling decisions
(1) - Class is not implemented in a separate table. A Class has minimal one Race. The first Race in a Class is called the Root Race. The Root Race acts as the Class. Other Races in the Class refer to the Root Race.
(2) - The relation between Series and Run is on type level. On occurrence level the relation between Series and Run goes via Category-in-race. This way of relating allows for flexibility in reshuffling Categories in Races, and allows for virtual Races. (Note: on the Ariadne Regatta model there is a direct occurrence relation between Series and Run, which reduces the flexibility of the Regatta model.).
(3) - Competition, Category, Race, Club and Person can have Remarks.
Starts with different Sports disciplines
The different (canoe/kayak) sports disciplines have different start methods. Slalom and down river racing have individual starts, Marathon has mass starts where competitors of more races start at the same moment. And Regatta normally uses lanes, in which a number of competitors in a race start at the same time (the number determined by the available number of lanes). A generic model of the Start class is stated below. Which of the two relations between Race and Start is used, depends on the canoe/kayak discipline.
As for the practical implementation of the Start class:
Heats and Finals
Some sports disciplines use more stages before the winner of a class is determined. Normally you have one or more heats, from which a number of the top ranking compatitors promote to the semi-final stage. The top rankings of the semi-final promote to the final stage. Heats, semi-finals, finals are considered Races (as they have separate result rankings).
As heats, semi-finals, finals are Races within the same class. Ariadne has no separate class table; the first race / stage in a class (the 'root race') acts as the class. The root-race has the relation to category-in-race. The next Races/stages in the class ('x-finals') refer to the root-race.
The schema below provides an object model (i.e. occurrence level)
(1) The relation between Series and Run is on type level. (Only with Regatta this relation is on occurrence level)
4.3 Ariadne Archive - Table Model
Ariadne Archive stores the results of persons for a competition. The archived results are used to create initial rankings for a new competition.
4.3.1 Ariadne Archive - modeling decisions
(1) - Person, and not Competing unit is added to archive. If a competing unit consists of more persons, the result of the competing unit is listed with each of the persons.
4.4 Ariadne System management - Table Model
4.4.1 Modeling decisions
(1) - Authorisation so far not implemented.