Tables


SchemaSpy Analysis of ci_db

Generated on Fri Sep 12 12:16 UTC 2025

XML Representation
Insertion Order Deletion Order
TABLES 38
VIEWS 4
COLUMNS 355
Constraints 57
Anomalies 3
Routines 0

Database Properties

Database Type: MySQL - 8.0.34

Tables

Table / View Children Parents Columns Rows Type Comments
results_propagate 0 3 4 0 Table

Used by the algorithm that computes results for items that have children and unlocks items if needed.

error_log 0 0 5 0 Table
groups 22 2 32 2 Table

A group can be either a user, a set of users, or a set of groups.

threads 0 3 6 0 Table

Discussion thread related to participant-item pair.

groups_groups 0 2 11 0 Table

Parent-child (N-N) relationships between groups (acyclic graph).

filters 0 1 17 0 Table
platforms 1 0 6 0 Table

Platforms that host content

items_strings 2 2 8 2 Table

Textual content associated with an item, in a given language.

access_tokens 0 1 4 0 Table

Access tokens (short lifetime) distributed to users, to access a specific session.

items 18 3 31 0 Table
group_pending_requests 0 2 7 0 Table

Requests that require an action from a user (group owner/manager or member)

group_managers 0 2 7 0 Table

Group managers and their permissions

permissions_propagate 0 2 3 0 Table

Used by the access rights propagation algorithm to keep track of the status of the propagation

stopwords 0 0 1 0 Table

Stopwords for the fulltext search. The table is empty on purpose. It is used to prevent the fulltext search from using the default stopwords list. All the MySQL fulltext indexes would have to be recreated with innodb_ft_server_stopword_table pointing to this table if we wanted to add some new stopwords. Also the stopwords would have to be filtered out from searched strings in the application code.

answers 1 4 9 0 Table

All the submissions made by users on tasks, as well as saved answers and the current answer

results 6 3 22 0 Table

Attempts of a group (team or user) to solve a task once or several times with different parameters with the task allows it.

gradings 0 1 3 0 Table

Grading results for answers

badges 0 1 4 0 Table
permissions_propagate_sync 0 0 4 0 Table

Used by the access rights propagation algorithm to keep track of the status of the propagation

results_recompute_for_items 0 1 2 0 Table

Used by the algorithm that computes results. All results for the item_id have to be recomputed when the item_id is in this table.

permissions_granted 0 4 18 0 Table

Raw permissions given to a group on an item

items_items 0 2 13 0 Table

Parent-child (N-N) relationship between items (acyclic graph)

languages 1 0 2 0 Table

Languages supported for content

items_propagate 0 1 2 0 Table

Used by the algorithm that updates the items_ancestors table, and keeps track of what items still need to have their relationship with their descendants / ancestors propagated.

group_item_additional_times 0 2 3 0 Table

Additional times of groups on time-limited items

goose_db_version 0 0 4 15 Table
permissions_generated 0 2 11 0 Table

Actual permissions that the group has, considering the aggregation and the propagation

items_ancestors 0 2 2 0 Table

All child-ancestor relationships (a item is not its own ancestor). Cache table that can be recomputed based on the content of groups_groups.

user_batch_prefixes 1 1 4 0 Table

Authorized login prefixes for user batch creation. A prefix cannot be deleted without deleting batches using it.

group_membership_changes 0 3 5 0 Table

Stores the history of group membership changes

sessions 1 1 3 0 Table

Sessions represent a logged in user, on a specific device.

attempts 2 3 8 0 Table

Attempts of participants (team or user) to solve a subtree of items. An attempt may have several answers for a same item. Every participant has a default attempt.

groups_ancestors 0 2 5 1 Table

All ancestor relationships for groups, given that a group is its own ancestor and team ancestors are not propagated to their members. It is a cache table that can be recomputed based on the content of groups_groups.

user_batches_v2 0 2 5 0 Table

Batches of users that were created (replaces user_batches which has been broken by a MySQL update)

users 8 2 48 0 Table

Users. A large part is obtained from the auth platform and may not be manually edited

results_propagate_sync 0 0 5 0 Table

Used by the algorithm that computes results for items that have children and unlocks items if needed.

item_dependencies 0 2 4 0 Table
groups_propagate 0 1 2 0 Table

Used by the algorithm that updates the groups_ancestors table, and keeps track of what groups still need to have their relationship with their descendants / ancestors propagated.

groups_groups_active 0 0 11 0 View
groups_ancestors_active 0 0 5 0 View
permissions_propagate_sync_conn 0 0 4 0 View
results_propagate_sync_conn 0 0 5 0 View