Skip to content

2.x data dictionary

Yannick Warnier edited this page Oct 20, 2026 · 5 revisions

Notes

These notes have been updated right before the release of v2.1. They add a few fields in comparison with 2.0. To check the differences, check the database migration code sequence at src/CoreBundle/Migrations/Schema/V210/*.

General principles

Entities

All tables are now reflected by Doctrine entities defined in the code in either src/CoreBundle/Entity or src/CourseBundle/Entity. All entities defined in src/CourseBundleEntity are related to learning tools and generally keep a table name prefix of c_ for historical reasons. The table where documents are stored is called c_document and the entity is CDocument and not just Document, but a user is not a resource of a learning tool, so its table is called user and its entity is User. Course-related entities generally use the iid identifier, unless they are relatively new tables (in this case they use the id field).

Sessions

Sessions are really special, but they are used only about half of the time, so they will (more than not) be set to null in the tables where the session_id field appears. In previous versions, this field could equal 0. Not anymore. Queries can thus be simplified.

Resources

A major difference in database structure between Chamilo 1 and Chamilo 2 is we now consider almost everything that is not static as a resource. This is reflected by the following trio of tables:

  • resource_node, which contains the essence of the resource,
  • resource_link, which contains the allocation of a resource to a context like a course, a session, a group, etc) and its properties in this context. There can be many links for each resource.
  • resource_file which contains the files attached to the resource, if any. There can be many files (different formats or variations) for one resource.

Common fields

  • All fields called c_id (or in certain cases course_id) always are references to the course.id field.
  • All fields called user_id (or any field ending with user_id) always are references to the user.id field.
  • All fields called session_id (or any field ending with session_id) always are references to the session.id field.
  • All fields called access_url_id or url_id are references to the access_url.id field.
  • When fields called group_id appear in a table with a c_ prefix, they are usually referring to a course group (c_group_info.iid)
  • All tables that require it have a title field. This is a significant difference with Chamilo 1.x as, previously, it could have been name, title or something else completely. Now you can trust the existence of a title field pretty much anywhere except where we don't need a title because the entity is not editable/viewable on its own.
  • Most tables have created_at and updated_at fields. This allows to very quickly know if something is recent.

As such, these fields are not detailed below.

Other notes

At the end of this page, we provide a few examples of inter-table queries that might be useful.

Tables and fields

access_url

List of all URLs if using multiple URLs

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
parent_id References access_url.id (self-reference), the parent URL in the Gedmo nested-set tree (AccessUrl::$parent)
tree_root
lft
lvl
rgt
url URL (including protocol)
description
active 1 if the URL can already be used
created_by (FK) user.id
tms timestamp
url_type (not used yet)
limit_courses
limit_active_courses
limit_sessions
limit_users
limit_teachers
limit_disk_space
email
is_login_only In complex setups, one URL can be "sacrified" to be a URL to only login and dispatch users to other URLs

access_url_rel_color_theme

Link between the access_url table and the color_theme table. Manages the relationship between URLs and the stylesheet that is applied to them.

Field Definition
id Unique identifier
url_id See "Common fields"
color_theme_id ID of the row in color_theme
active Only used actively if = 1
created_at See "Common fields"
updated_at See "Common fields"

access_url_rel_course

Link between the access_url table and the course table

Field Definition
id Unique identifier
c_id See "Common fields"
access_url_id See "Common fields"

access_url_rel_course_category

Link between access_url and course_category

Field Definition
id Unique identifier
access_url_id See "Common fields"
course_category_id References course_category.id (AccessUrlRelCourseCategory::$courseCategory)

access_url_rel_plugin

Links an installed plugin (plugin) to a specific portal (access_url) in multi-URL setups, storing whether the plugin is active and its per-URL configuration. Reflected by the Doctrine entity AccessUrlRelPlugin (src/CoreBundle/Entity/AccessUrlRelPlugin.php).

Field Definition
id Unique identifier
plugin_id References plugin.id
url_id See "Common fields"
active 1 if the plugin is enabled for this access URL
configuration Per-URL plugin configuration (JSON)

access_url_rel_session

Link between access_url and session for sessions registered in a specific URL

Field Definition
id Unique identifier
session_id See "Common fields"
access_url_id See "Common fields"

access_url_rel_user

Link between access_url and user for users registered in a specific URL

Field Definition
id
user_id See "Common fields"
access_url_id access_url id (FK)

access_url_rel_usergroup

Link between access_url and usergroup for groups registered in a specific URL

Field Definition
id Unique identifier
access_url_id See "Common fields"
usergroup_id usergroup id (FK)

agenda_reminder

Field Definition
id
event_id References c_calendar_event.iid (AgendaReminder::$event)
date_interval
sent
created_at
updated_at

ai_requests

Logs each call made to an external AI provider (prompt/response token counts, provider, model, endpoint) for auditing and cost tracking across AI-powered tools (image/video generation, glossary, cost estimation, etc.). See AiRequests (src/CoreBundle/Entity/AiRequests.php), populated from AiController.

Field Definition
id Unique identifier
user_id See "Common fields"
tool_name Name of the AI feature/tool that issued the request (e.g. glossary, image or video generation)
tool_item_id Identifier of the item the request relates to within tool_name; polymorphic, no single fixed target table
requested_at
request_text
prompt_tokens
completion_tokens
total_tokens
ai_provider
ai_model
ai_endpoint

ai_tutor_conversation

A chat thread between a user and the AI Tutor for a given course (and optional session) with a specific AI provider. See AiTutorConversation (src/CoreBundle/Entity/AiTutorConversation.php), managed by AiTutorChatService; a unique constraint enforces one conversation per user/course/provider.

Field Definition
id Unique identifier
user_id See "Common fields"
course_id See "Common fields"
session_id See "Common fields"
ai_provider
provider_conversation_id Identifier of the conversation on the external AI provider's side, if any
created_at
updated_at
last_message_at

ai_tutor_message

An individual chat turn (role + content) belonging to an ai_tutor_conversation. See AiTutorMessage (src/CoreBundle/Entity/AiTutorMessage.php).

Field Definition
id Unique identifier
conversation_id References ai_tutor_conversation.id, the conversation this message belongs to (AiTutorMessage::$conversation)
role
content
created_at

announcement_rel_group

Link between sys_announcement and usergroup

Field Definition
group_id References usergroup.id, the group this announcement is made visible to (AnnouncementRelGroup::$groupId)
announcement_id id from sys_announcement

asset

Field Definition
id
title
category
compressed
mime_type
original_name
dimensions
size
crop
metadata
description
updated_at
created_at

attempt_feedback

Field Definition
id
attempt_id References track_e_attempt.id, the exercise attempt this feedback was left for (AttemptFeedback::$attempt, TrackEAttempt::$attemptFeedbacks)
user_id See "Common fields"
resource_node_id A 1 to 1 reference to resource_node
comment
created_at
updated_at

attempt_file

A file uploaded/attached to a learner's exercise attempt (track_e_attempt), linked to its stored content via resource_node. See AttemptFile (src/CoreBundle/Entity/AttemptFile.php), a sibling of attempt_feedback for the same attempt.

Field Definition
id Unique identifier (UUID)
attempt_id References track_e_attempt.id, the exercise attempt this file was uploaded for (AttemptFile::$attempt, TrackEAttempt::$attemptFiles)
resource_node_id References resource_node.id, the stored file (AttemptFile::$resourceNode)
comment
created_at
updated_at

azure_sync_state

Key/value sync checkpoints for the Azure AD / Microsoft Graph integration, used so the Azure sync commands only fetch users/user-groups changed since the last run. See AzureSyncState (src/CoreBundle/Entity/AzureSyncState.php), read/written by AzureSyncAbstractCommand and its subcommands.

Field Definition
id Unique identifier
title Key naming the tracked sync state (e.g. users_datalink, usergroups_datalink)
value Stored state value, typically the Microsoft Graph API deltaLink used to resume sync from where it left off
created_at
updated_at

block

(not yet used)

Field Definition
id Unique identifier
user_id See "Common fields"
title
description
path
controller
active

branch_sync

(not in use yet) Allows for the synchronisation of Chamilo portals between themselves (not used yet)

Field Definition
id Unique identifier
access_url_id References access_url.id, the portal this branch record represents (BranchSync::$url)
parent_id References branch_sync.id, the parent branch in the nested tree of portals (BranchSync::$parent)
unique_id Unique string identifier generated for this branch, used to identify it during synchronisation
title Name of the branch/portal
description
branch_ip IP address of the branch portal
latitude Geographic latitude of the branch, used for the portal map view
longitude Geographic longitude of the branch, used for the portal map view
dwn_speed Download speed reported by the branch (informational)
up_speed Upload speed reported by the branch (informational)
delay Network delay/latency reported by the branch (informational)
admin_mail E-mail address of the branch administrator
admin_name Name of the branch administrator
admin_phone Phone number of the branch administrator
last_sync_trans_id ID of the last synchronisation transaction processed for this branch
last_sync_trans_date Datetime of the last synchronisation transaction
last_sync_type Type/mode of the last synchronisation performed
ssl_pub_key Public SSL key used to authenticate/encrypt communication with this branch
branch_type Type of branch (e.g. central hub vs local portal)
lft Nested-set "left" boundary value used for the branch tree hierarchy (Gedmo Tree)
rgt Nested-set "right" boundary value used for the branch tree hierarchy (Gedmo Tree)
lvl Nested-set depth level in the branch tree hierarchy (Gedmo Tree)
root Nested-set root identifier of the branch tree this record belongs to (Gedmo Tree)

branch_transaction

(not in use yet) Allows for the registration of transactions (pending or executed) from another system, to be executed in Chamilo

Field Definition
id Unique identifier
status_id References branch_transaction_status.id, the current status of this transaction (BranchTransaction::$branchTransactionStatus)
branch_id References branch_sync.id, the branch this transaction was received from/for (BranchTransaction::$branch)
transaction_id External system's transaction identifier (BranchTransaction::$externalTransactionId)
action Action to execute in Chamilo for this transaction (e.g. create/update/delete)
item_id Identifier of the item, in the external system, this transaction refers to
origin Origin system/branch of the transaction
dest_id Destination identifier for the transaction
external_info Additional information provided by the external system
time_insert Datetime the transaction was registered
time_update Datetime the transaction was last updated
failed_attempts Number of times execution of this transaction has failed

branch_transaction_status

(not in use yet) Dictionary of status terms for branch_transaction

Field Definition
id Unique identifier
title Name of the status (e.g. pending, executed)

c_announcement

Contains the announcements in the corresponding course tool

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
content
end_date
email_sent

c_announcement_attachment

Contains the attachments (files) of c_announcement

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
announcement_id id from c_announcement
path
comment
size
filename

c_attendance

Contains one attendance "resource". Courses can contain several attendance resources, which can each be evaluated in the gradebook. Each contains dates (c_attendance_calendar), which contain attendance records (see c_attendance_sheet)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
description
active
attendance_qualify_title
attendance_qualify_max
attendance_weight
locked
require_unique Whether a user can only be marked present once per calendar date (CAttendance::$requireUnique)
room_id References room.id (CAttendance::$room)

c_attendance_calendar

Each attendance datetime is registered here separately.

Field Definition
iid Unique identifier
attendance_id id from c_attendance
date_time
done_attendance
blocked Whether this attendance date is locked against further changes (CAttendanceCalendar::$blocked)
duration Duration, in minutes, of the attendance session (CAttendanceCalendar::$duration)
room_id References room.id; overrides the parent attendance's room for this date if set (CAttendanceCalendar::$room)

c_attendance_calendar_rel_group

If an attendance date is specific to a users group in a course, this links the date to the c_group

Field Definition
iid Unique identifier
group_id See "Common fields"
calendar_id References c_attendance_calendar.iid (CAttendanceCalendarRelGroup::$attendanceCalendar)

c_attendance_result

The global attendance "rate" of a user in an attendance resource

Field Definition
iid Unique identifier
user_id See "Common fields"
attendance_id References c_attendance.iid (CAttendanceResult::$attendance)
score

c_attendance_result_comment

A teacher's remark on a specific attendance record for one user and calendar date. See CAttendanceResultComment (src/CourseBundle/Entity/CAttendanceResultComment.php); despite the table name, attendance_sheet_id actually references c_attendance_sheet (the per-user, per-date presence record), not c_attendance_result.

Field Definition
iid Unique identifier
attendance_sheet_id References c_attendance_sheet.iid (CAttendanceResultComment::$attendanceSheetId)
user_id See "Common fields". The student whose attendance is commented on.
comment
created_at
updated_at
author_user_id See "Common fields". The teacher who wrote the comment.

c_attendance_sheet

Registers the attendance or lack thereof of a user to a specific calendar datetime

Field Definition
iid Unique identifier
user_id See "Common fields"
attendance_calendar_id References c_attendance_calendar.iid (CAttendanceSheet::$attendanceCalendar)
presence
signature Signature captured for this attendance record (CAttendanceSheet::$signature)

c_attendance_sheet_log

Log table for changes in the c_attendance_sheet

Field Definition
iid Unique identifier
attendance_id References c_attendance.iid (CAttendanceSheetLog::$attendance)
lastedit_user_id See "Common fields"
lastedit_date
lastedit_type
calendar_date_value

c_autogroup_user_invitation

An invitation for a specific user to join an auto-registration group (c_group_info) within a group category (c_group_category), used by the group self-registration/auto-grouping feature. See CAutogroupUserInvitation (src/CourseBundle/Entity/CAutogroupUserInvitation.php).

Field Definition
id Unique identifier
group_category_id References c_group_category.iid (CAutogroupUserInvitation::$groupCategory)
group_id References c_group_info.iid (CAutogroupUserInvitation::$group)
user_id See "Common fields"
confirm Whether the invited user has confirmed joining the group

c_blog

Entries for each blog created in a course

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
blog_subtitle
date_creation

c_blog_attachment

File attachments to blog posts

Field Definition
iid Unique identifier
blog_id References c_blog.iid. Used by CBlogAttachment::$blog.
post_id References c_blog_post.iid. Used by CBlogAttachment::$post.
comment_id References c_blog_comment.iid. Used by CBlogAttachment::$commentRef.
path
comment
size
filename

c_blog_comment

Comments on blog posts

Field Definition
iid Unique identifier
author_id Reference to user.id. Represents the author of the blog comment.
blog_id References c_blog.iid. Used by CBlogComment::$blog.
post_id References c_blog_post.iid. Used by CBlogComment::$post.
parent_comment_id References c_blog_comment.iid (self-reference for threaded replies). Used by CBlogComment::$parentComment.
comment_id deprecated
title
comment
date_creation

c_blog_post

Messages posted in blogs

Field Definition
iid Unique identifier
author_id References user.id. Represents the author of the blog post.
blog_id References c_blog.iid. Used by CBlogPost::$blog.
title
full_text
date_creation

c_blog_rating

Ratings given to blog posts

Field Definition
iid Unique identifier
blog_id References c_blog.iid. Used by CBlogRating::$blog.
user_id See "Common fields"
post_id References c_blog_post.iid. Used by CBlogRating::$post.
rating_type
rating

c_blog_rel_user

Link between c_blog and user

Field Definition
iid Unique identifier
blog_id References c_blog.iid. Used by CBlogRelUser::$blog.
user_id See "Common fields"

c_blog_task

Tasks that can be configured inside a blog

Field Definition
iid Unique identifier
blog_id References c_blog.iid. Used by CBlogTask::$blog.
author_id References user.id. Used by CBlogTask::$author.
task_id Legacy course-local sequential identifier of the task entry, retained for backward compatibility (defaults to 0); superseded by iid. Maps to CBlogTask::$taskId, not used as a foreign key.
title
description
color
system_task

c_blog_task_rel_user

Assignation of tasks (c_blog_task) to users (user)

Field Definition
iid Unique identifier
task_id References c_blog_task.iid. Used by CBlogTaskRelUser::$task.
blog_id References c_blog.iid. Used by CBlogTaskRelUser::$blog.
user_id See "Common fields"
target_date
status

c_calendar_event

Events of the calendar

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
parent_event_id References c_calendar_event.iid (CCalendarEvent::$parentEvent)
room_id References room.id (CCalendarEvent::$room)
career_id References career.id (CCalendarEvent::$career)
promotion_id References promotion.id (CCalendarEvent::$promotion)
title
content
start_date
end_date
all_day
comment
color
invitation_type Type of invitation for a collective event (CCalendarEvent::TYPE_INVITATION = invitation or TYPE_SUBSCRIPTION = subscription)
collective Whether the event is a collective event that a group of users can subscribe to or be invited to (CCalendarEvent::$collective)
subscription_visibility Visibility of the subscription/attendee list (CCalendarEvent::SUBSCRIPTION_VISIBILITY_NO = 0, SUBSCRIPTION_VISIBILITY_ALL = 1, SUBSCRIPTION_VISIBILITY_CLASS = 2)
subscription_item_id When subscription_visibility is SUBSCRIPTION_VISIBILITY_CLASS, references usergroup.id (the class/group allowed to subscribe) (CCalendarEvent::$subscriptionItemId)
max_attendees Maximum number of attendees allowed to subscribe to the event

c_calendar_event_attachment

Attachment (files) to the c_calendar_event records

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
agenda_id References c_calendar_event.iid (CCalendarEventAttachment::$event)
comment
filename

c_calendar_event_repeat

Definition of repetitions for existing events

Field Definition
iid Unique identifier
cal_id References c_calendar_event.iid (CCalendarEventRepeat::$event)
cal_type
cal_end
cal_frequency
cal_days

c_calendar_event_repeat_not

Definition of exclusions/exceptions in repetitions for existing events

Field Definition
iid Unique identifier
cal_id References c_calendar_event.iid (CCalendarEventRepeatNot::$event)
cal_date

c_chat_connected

Logs when a user is active in the course chat

Field Definition
iid Unique identifier
c_id See "Common fields"
session_id See "Common fields"
to_group_id See "Common fields". References c_group_info.iid, the course group the user was connected to in the course chat (CChatConnected::$toGroupId)
user_id See "Common fields"
last_connection

c_chat_conversation

A resource-based container for one course chat conversation, distinct from the older presence table c_chat_connected. See CChatConversation (src/CourseBundle/Entity/CChatConversation.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id, the resource node backing this conversation
title

c_course_description

The sections available in the course description tool

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
content
description_type
progress

c_course_setting

Settings of the course (whether to send e-mails, when, etc) that can be access through the Settings tool inside the course

Field Definition
iid Unique identifier
c_id See "Common fields"
variable
subkey
type
category
value
title
comment
subkeytext

c_document

The list of documents and folders of the documents tool

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
comment
filetype
readonly
template 1 if this document is a reusable document template

c_dropbox_category

Folders inside the dropbox

Field Definition
iid Unique identifier
c_id See "Common fields"
cat_id Legacy self-referencing identifier: mirrors this row's own iid (set via an insert-then-update, see CDropboxCategoryRepository::createForUser()). Not a reference to another table — it is the value that c_dropbox_file.cat_id and c_dropbox_post.cat_id point back to. Used by CDropboxCategory::$catId.
title
received
sent
user_id See "Common fields"
session_id See "Common fields"

c_dropbox_feedback

Feedback sent by users on files in the dropbox

Field Definition
iid Unique identifier
c_id See "Common fields"
feedback_id Legacy self-referencing identifier: mirrors this row's own iid (set via an insert-then-update in dropbox_functions.inc.php::store_feedback()), not a foreign key to another row. Used by CDropboxFeedback::$feedbackId.
file_id References c_dropbox_file.iid. Identifies the file this feedback was posted on. Used by CDropboxFeedback::$fileId.
author_user_id See "Common fields"
feedback
feedback_date

c_dropbox_file

A file dropped in the dropbox

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
c_id See "Common fields"
uploader_id References user.id. Represents the user who uploaded the file.
filename
filesize
title
description
author
upload_date
last_upload_date
cat_id References c_dropbox_category.iid (via c_dropbox_category.cat_id, which mirrors iid). Identifies the category/folder containing this file. Used by CDropboxFile::$catId.
session_id See "Common fields"

c_dropbox_person

The relationships between files (c_dropbox_file) and whom they are sent to (user)

Field Definition
iid Unique identifier
c_id See "Common fields"
file_id References c_dropbox_file.iid. Identifies the file sent to the user in this row. Used by CDropboxPerson::$fileId.
user_id See "Common fields"

c_dropbox_post

A message posted on a file (c_dropbox_file)

Field Definition
iid Unique identifier
feedback_date
feedback
cat_id References c_dropbox_category.iid (via c_dropbox_category.cat_id, which mirrors iid). Identifies the category/folder this message's file belongs to. Used by CDropboxPost::$catId.
session_id See "Common fields"
c_id See "Common fields"
file_id References c_dropbox_file.iid. Identifies the file this message was posted on. Used by CDropboxPost::$fileId.
dest_user_id See "Common fields". Represents the user this message is sent to.

c_forum_attachment

File attachments to c_forum_post records

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
post_id References c_forum_post.iid. Used by CForumAttachment::$post.
c_id See "Common fields"
path
comment
size
filename

c_forum_category

Forum categories (which include forums)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
cat_comment
locked

c_forum_forum

Forums (which include threads)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
forum_last_post
forum_category
lp_id References c_lp.iid. Used by CForum::$lp.
title
forum_comment
forum_threads
forum_posts
allow_anonymous
allow_edit
approval_direct_post
allow_attachments
allow_new_threads
default_view
forum_of_group
forum_group_public_private
locked
forum_image
start_time
end_time
moderated

c_forum_mailcue

When a user marks a thread or post for update notifications, it is kept here

Field Definition
iid Unique identifier
c_id See "Common fields"
thread_id References c_forum_thread.iid. Used by CForumMailcue::$threadId.
user_id See "Common fields"
post_id References c_forum_post.iid. Used by CForumMailcue::$postId.

c_forum_notification

...

Field Definition
iid Unique identifier
c_id See "Common fields"
user_id See "Common fields"
forum_id References c_forum_forum.iid. Used by CForumNotification::$forumId.
thread_id References c_forum_thread.iid. Used by CForumNotification::$threadId.
post_id References c_forum_post.iid. Used by CForumNotification::$postId.

c_forum_post

Forum posts (in response to a thread)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
thread_id References c_forum_thread.iid. Used by CForumPost::$thread.
forum_id References c_forum_forum.iid. Used by CForumPost::$forum.
poster_id References user.id. Used by CForumPost::$user.
post_parent_id References c_forum_post.iid. Used by CForumPost::$postParent. Self-reference: the post being replied to.
title
post_text
post_date
post_notification
visible
status

c_forum_thread

Forum threads (which give birth to posts and have more properties than posts)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
forum_id References c_forum_forum.iid. Used by CForumThread::$forum.
thread_poster_id References user.id. Represents the author of the thread.
thread_last_post
lp_item_id References c_lp_item.iid. Used by CForumThread::$item.
title
thread_date
thread_replies
thread_views
thread_sticky
locked
thread_title_qualify
thread_qualify_max
thread_close_date
thread_weight
thread_peer_qualify

c_forum_thread_qualify

If a thread can be scored, the scores given by teachers or other users are stored here

Field Definition
iid Unique identifier
user_id See "Common fields"
thread_id References c_forum_thread.iid. Used by CForumThreadQualify::$thread.
qualify_user_id See "Common fields"
c_id See "Common fields"
qualify
qualify_time

c_forum_thread_qualify_log

A log table of all the changes in the forum threads scores

Field Definition
iid Unique identifier
c_id See "Common fields"
user_id See "Common fields"
thread_id References c_forum_thread.iid. Used by CForumThreadQualifyLog::$threadId.
qualify
qualify_user_id See "Common fields"
qualify_time
session_id See "Common fields"

c_glossary

Terms from the course glossary

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
description

c_group_category

Categories of course groups (c_group_info)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
peer_assessment References c_peer_assessment.id (CGroupCategory::$peerAssessment) — optional peer-assessment configuration applied to groups in this category
title
description
doc_state
calendar_state
work_state
announcements_state
forum_state
wiki_state
chat_state
max_student
self_reg_allowed
self_unreg_allowed
groups_per_user
document_access Access level for the group's shared document space
min_student Minimum number of students required per group
begin_inscription_date Start date/time of the self-registration window
end_inscription_date End date/time of the self-registration window
only_me Limits visibility of a self-registered group to its own creator
allow_coach_change_options_groups Allows the course coach to change this category's group configuration options
allow_change_group_name Whether/how group members may rename their group
allow_autogroup Allows automatic group assignment/creation for self-registration

c_group_category_rel_user

Restricts which platform users or usergroups may self-register into groups of a c_group_category. See CGroupCategoryRelUser (src/CourseBundle/Entity/CGroupCategoryRelUser.php).

Field Definition
id Unique identifier; part of the composite primary key with group_category_id
group_category_id References c_group_category.iid (CGroupCategoryRelUser::$groupCategory); part of the composite primary key
population_type Distinguishes whether population_id refers to a user or a usergroup
population_id References either user.id or usergroup.id, depending on population_type
status_in_category

c_group_info

Course groups and their description

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
category_id References c_group_category.iid (CGroup::$category)
title
status
description
max_student
doc_state
calendar_state
work_state
announcements_state
forum_state
wiki_state
chat_state
self_registration_allowed
self_unregistration_allowed
document_access Access level for the group's shared document space

c_group_rel_tutor

Tutors assigned to course groups (c_group_info)

Field Definition
iid Unique identifier
user_id See "Common fields"
group_id See "Common fields"
c_id See "Common fields"

c_group_rel_user

Users registered in course groups (c_group_info)

Field Definition
iid Unique identifier
user_id See "Common fields"
group_id See "Common fields"
c_id See "Common fields"
status
role
ready_autogroup

c_group_rel_usergroup

Restricts membership of a course group (c_group_info) to the members of a specific platform usergroup; used to auto-sync course group members when the usergroup's member list changes (see UsergroupAddUsersController::syncLinkedCourseGroups()). See CGroupRelUsergroup (src/CourseBundle/Entity/CGroupRelUsergroup.php).

Field Definition
id Unique identifier
group_id References c_group_info.iid (CGroupRelUsergroup::$group)
usergroup_id References usergroup.id (CGroupRelUsergroup::$usergroup)
session_id See "Common fields"
c_id See "Common fields"
ready_autogroup

c_link

Course links

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
category_id References c_link_category.iid (CLink::$category)
custom_image_id References asset.id (CLink::$customImage) — custom image/illustration for the link, if uploaded by the teacher
url
title
description
target

c_link_category

Categories of course links (c_link)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
description

c_lp

Course learning paths

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
category_id References c_lp_category.iid. Used by CLp::$category.
asset_id References asset.id. Used by CLp::$asset.
lp_type
title
ref
description
path
force_commit
default_view_mod
default_encoding Mostly for very old imported content not in UTF-8 (usually in UTF-8 in all recent content)
content_maker just a label
content_local
content_license
prevent_reinit
js_lib
debug feature only available to platform admins
theme
author
prerequisite for dependencies on other learning paths
hide_toc_frame
seriousgame_mode
use_max_score
autolaunch
max_attempts
subscribe_users
created_on
modified_on
published_on
expired_on
accumulate_scorm_time
accumulate_work_time
next_lp_id Not a cross-reference in the current codebase: stored as a plain scalar column, not a Doctrine association, despite the name suggesting a pointer to the learning path to move to after finishing this one. Used by CLp::$nextLpId.
subscribe_user_by_date
display_not_allowed_lp
duration
auto_forward_video

c_lp_category

Categories for courses learning paths

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title

c_lp_category_rel_user

Restricts which users may see a learning-path category (c_lp_category). See CLpCategoryRelUser (src/CourseBundle/Entity/CLpCategoryRelUser.php).

Field Definition
id Unique identifier
category_id References c_lp_category.iid (CLpCategoryRelUser::$category)
user_id See "Common fields"

c_lp_item

Documents inside a learning path

Field Definition
iid Unique identifier
lp_id References c_lp.iid. Used by CLpItem::$lp.
item_root References c_lp_item.iid (self-reference to the root item of this LP's tree; also mapped as Gedmo TreeRoot). Used by CLpItem::$root.
parent_item_id References c_lp_item.iid (self-reference to the parent item, building the LP's tree structure via Gedmo's nested-tree behavior). Used by CLpItem::$parent.
title
item_type tool used (document, link, etc) or in the case of SCORM: asset, sco, etc
ref iid of the item if document, quiz, link, etc
description
path
min_score
max_score
mastery_score
display_order
prerequisite
parameters
launch_data
max_time_allowed
terms
search_did
audio
prerequisite_min_score
prerequisite_max_score
previous_item_id Mapped as Gedmo TreeLeft (nested-set left boundary maintained by the tree extension), not a plain foreign key despite the name; legacy code (e.g. learnpath.class.php::delete_item()) still writes a sibling item's iid into it directly. Used by CLpItem::$previousItemId.
next_item_id Mapped as Gedmo TreeRight (nested-set right boundary), the counterpart of previous_item_id; not a foreign key despite the name. Used by CLpItem::$nextItemId.
lvl Mapped as Gedmo TreeLevel (nested-set depth of this item within the LP's tree), maintained by the tree extension alongside previous_item_id/next_item_id. Used by CLpItem::$lvl.
duration
export_allowed

c_lp_item_view

Each visualization by a user (user) of one document (c_lp_item) inside the learning path (c_lp). Belongs to a c_lp_view entry

Field Definition
iid Unique identifier
lp_item_id References c_lp_item.iid. Used by CLpItemView::$item.
lp_view_id References c_lp_view.iid. Used by CLpItemView::$view.
view_count
start_time
total_time
score
status
suspend_data
lesson_location
core_exit
max_score
progress

c_lp_iv_interaction

SCORM interactions for one specific c_lp_item_view

Field Definition
iid Unique identifier
c_id See "Common fields"
order_id Not a cross-reference: the ordinal position of this interaction within its item view's interaction list (matches the SCORM cmi.interactions.n index). Used by CLpIvInteraction::$orderId.
lp_iv_id References c_lp_item_view.iid (the item view this interaction belongs to); stored as a plain scalar column, not a Doctrine association. Used by CLpIvInteraction::$lpIvId.
interaction_id Not a cross-reference: a SCORM-spec string identifier (cmi.interactions.n.id) defined by the SCORM package's manifest, not a reference to another Chamilo table. Used by CLpIvInteraction::$interactionId.
interaction_type
weighting
completion_time
correct_responses
student_response
result
latency

c_lp_iv_objective

SCORM objectives for one specific c_lp_item_view

Field Definition
iid Unique identifier
c_id See "Common fields"
lp_iv_id References c_lp_item_view.iid (the item view this objective belongs to); stored as a plain scalar column, not a Doctrine association. Used by CLpIvObjective::$lpIvId.
order_id Not a cross-reference: the ordinal position of this objective within its item view's objective list (matches the SCORM cmi.objectives.n index). Used by CLpIvObjective::$orderId.
objective_id Not a cross-reference: a SCORM-spec string identifier (cmi.objectives.n.id) defined by the SCORM package's manifest, not a reference to another Chamilo table. Used by CLpIvObjective::$objectiveId.
score_raw
score_max
score_min
status

c_lp_rel_user

A per-user access restriction/override for a learning path (c_lp), used by the advanced learning-path access feature (see LpAdvancedAccessHelper) to grant an individual student access outside the LP's own publication dates. See CLpRelUser (src/CourseBundle/Entity/CLpRelUser.php).

Field Definition
iid Unique identifier
lp_id References c_lp.iid (CLpRelUser::$lp)
c_id See "Common fields"
session_id See "Common fields"
user_id See "Common fields"
creator_id References user.id, the user who created this restriction (CLpRelUser::$creatorUser)
group_id See "Common fields"
created_at
start_date
end_date
is_open_without_date

c_lp_rel_usergroup

Restricts access to a learning path (c_lp) to the members of a specific platform usergroup, mirroring c_lp_rel_user at the group level. See CLpRelUserGroup (src/CourseBundle/Entity/CLpRelUserGroup.php).

Field Definition
id Unique identifier
lp_id References c_lp.iid (CLpRelUserGroup::$lp)
c_id See "Common fields"
session_id See "Common fields"
usergroup_id References usergroup.id (CLpRelUserGroup::$userGroup)
created_at

c_lp_user_access

A time window during which a specific user is allowed to access a learning path (c_lp), independent of the LP's own publication dates. See CLpUserAccess (src/CourseBundle/Entity/CLpUserAccess.php).

Field Definition
id Unique identifier
user_id See "Common fields"
lp_id References c_lp.iid (CLpUserAccess::$lp)
start_date
end_date
is_open_without_date

c_lp_view

View of a learning path (c_lp) by a user. Contains many c_lp_view_item

Field Definition
iid Unique identifier
user_id See "Common fields"
lp_id References c_lp.iid. Used by CLpView::$lp.
c_id See "Common fields"
session_id See "Common fields"
view_count
last_item
progress the current progress of the user in this learning path's view, in percentage (0-100)
compdate

c_notebook

Posts in the notebook tool in the course (personal notes)

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
user_id See "Common fields"
title
description
creation_date datetime
update_date datetime
status

c_peer_assessment

Configuration of a peer-grading exercise in which students of a group category (c_group_category) grade each other's submissions (c_student_publication), including scheduling windows and correction-distribution rules. See CPeerAssessment (src/CourseBundle/Entity/CPeerAssessment.php).

Field Definition
id Unique identifier
c_id See "Common fields"
group_category_id References c_group_category.iid (CPeerAssessment::$groupCategory)
max_correction_per_student
state
start_work_repository_option
end_work_repository_option
start_correction_option
end_correction_option
distribute_correction_option
end_repository_option
examiner_role_condition
student_access_to_correction
comment_constraint
correct_own_work
correct_benchmark_work
distribution_algorithm
send_work_start_date
send_work_end_date
start_correction_date
end_correction_date
created_at
updated_at

c_peer_assessment_correction

One examiner's correction of a peer's work within a c_peer_assessment, holding the resulting score. See CPeerAssessmentCorrection (src/CourseBundle/Entity/CPeerAssessmentCorrection.php).

Field Definition
id Unique identifier
peer_assessment_id References c_peer_assessment.id (CPeerAssessmentCorrection::$peerAssessment)
student_group_id References usergroup.id, the examiner's student group (CPeerAssessmentCorrection::$studentGroup)
examiner_id id of the examining user
examiner_group_id id of the examining group, if the correction was made collectively
total_score
maximum_score
delivered
examiner_folder_id id of the work-repository folder where the examiner's correction file is filed
examiner_document_id id of the examiner's correction document
completed

c_peer_assessment_correction_criteria

The score and comment given for one c_peer_assessment_criteria within a c_peer_assessment_correction. See CPeerAssessmentCorrectionCriteria (src/CourseBundle/Entity/CPeerAssessmentCorrectionCriteria.php).

Field Definition
id Unique identifier
peer_assessment_correction_id References c_peer_assessment_correction.id (CPeerAssessmentCorrectionCriteria::$peerAssessmentCorrection)
peer_assessment_criteria_id References c_peer_assessment_criteria.id (CPeerAssessmentCorrectionCriteria::$peerAssessmentCriteria)
comment
score

c_peer_assessment_criteria

One grading criterion, with its maximum score, defined for a c_peer_assessment. See CPeerAssessmentCriteria (src/CourseBundle/Entity/CPeerAssessmentCriteria.php).

Field Definition
id Unique identifier
peer_assessment_id References c_peer_assessment.id (CPeerAssessmentCriteria::$peerAssessment)
title
description
score Maximum score for this criterion
position

c_peer_assessment_log

Audit log of user actions within a c_peer_assessment. See CPeerAssessmentLog (src/CourseBundle/Entity/CPeerAssessmentLog.php).

Field Definition
id Unique identifier
peer_assessment_id References c_peer_assessment.id (CPeerAssessmentLog::$peerAssessment)
user_id See "Common fields"
date
description

c_peer_assessment_rel_student_publication

Links a submitted assignment (c_student_publication) to the c_peer_assessment and course group (c_group_info) it is being peer-graded in. See CPeerAssessmentRelStudentPublication (src/CourseBundle/Entity/CPeerAssessmentRelStudentPublication.php).

Field Definition
id Unique identifier
peer_assessment_id References c_peer_assessment.id (CPeerAssessmentRelStudentPublication::$peerAssessment)
student_publication_id References c_student_publication.iid (CPeerAssessmentRelStudentPublication::$studentPublication)
group_id See "Common fields"
student_publication_folder_id id of the c_student_publication folder this submission was filed under

c_peer_autogroup_rel_student_publication

A student's assignment submission (c_student_publication) and vote within an auto-generated peer-grading group, used to distribute peer-assessment corrections among students. See CPeerAutogroupRelStudentPublication (src/CourseBundle/Entity/CPeerAutogroupRelStudentPublication.php).

Field Definition
id Unique identifier
user_id See "Common fields"
student_publication_id References c_student_publication.iid (CPeerAutogroupRelStudentPublication::$studentPublication)
group_id References c_group_info.iid (CPeerAutogroupRelStudentPublication::$group)
peer_autogroup_id id of the auto-generated peer group
vote
date_vote
student_publication_parent_id id of the parent c_student_publication folder/submission
student_publication_folder_id id of the c_student_publication folder this submission was filed under

c_plagiarism_compilatio_docs

Tracks a course document submitted to the Compilatio external plagiarism-detection service, storing the identifier Compilatio assigned to it. See CPlagiarismCompilatioDocs (src/CourseBundle/Entity/CPlagiarismCompilatioDocs.php); the integration is enabled via the allow_compilatio_tool platform setting.

Field Definition
id Unique identifier
c_id See "Common fields"
document_id References c_document.iid, the submitted document
compilatio_id Identifier assigned to the document by the Compilatio service

c_quiz

List of exercises in courses

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
quiz_category_id References c_quiz_category.id, renamed from exercise_category_id (CQuiz::$quizCategory)
title Title
description Introduction block that shows at the beginning of a test
sound
type
random Type of randomness
random_answers Whether answers are randomized
results_disabled Whether we show the results
access_condition
max_attempt Number of attempts allowed
start_time Datetime of when the entrance to the quiz is first available
end_time Datetime of when the entrance to the quiz stops being available
feedback_type Type of feedback shown to the student after answering a question
expired_time
propagate_neg Whether to propagate negative scores from one question to the next
save_correct_answers
review_answers
random_by_category
text_when_finished
text_when_finished_failure Text shown to the student when they fail the quiz (pass_percentage not reached)
display_category_name
pass_percentage
prevent_backwards Prevent users for going backwards between questions in one-question-per-page mode (optional field added manually)
question_selection_type
hide_question_number Whether to hide the question number
hide_question_title
show_previous_button Whether to show a "previous question" button
notifications Comma-separated list of notification-event codes to trigger for this quiz
autolaunch
hide_attempts_table Whether to hide the attempts table
page_result_configuration Serialized configuration of what is displayed on the results page
display_chart_degree_certainty Whether to display the degree-of-certainty chart
send_email_chart_degree_certainty Whether to email the degree-of-certainty chart
not_display_balance_percentage_categorie_question Whether to hide the balance percentage per category of questions
display_chart_degree_certainty_category Whether to display the degree-of-certainty chart broken down by category
gather_questions_categories Whether to gather/group questions by category
duration Time limit for the quiz

c_quiz_answer

List of possible answers to a question (c_quiz_question) in a c_quiz

Field Definition
iid Unique identifier
question_id the c_quiz_question iid it relates to
answer the text of this answer
correct 0 if incorrect, 1 if the correct answer to the question
comment feedback if this answer was picked
ponderation Not the ponderation (bad naming) but the score obtained for selecting this answer
position
hotspot_coordinates
hotspot_type
answer_code

c_quiz_category

A category used to group quizzes/exercises (c_quiz) in a course; a resource-based entity managed through the exercise-category-management feature. See CQuizCategory (src/CourseBundle/Entity/CQuizCategory.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id, the resource node backing this category
c_id See "Common fields"
title
description
position
created_at
updated_at

c_quiz_destination_result

Records the "achieved level" a user reached in a destination/branching-scenario exercise attempt (track_e_exercises), used by survey-style exercises with question routing. See CQuizDestinationResult (src/CourseBundle/Entity/CQuizDestinationResult.php).

Field Definition
id Unique identifier
user_id See "Common fields"
exe_id References track_e_exercises.exe_id, the exercise attempt (CQuizDestinationResult::$exe)
achieved_level
hash

c_quiz_question

List of questions in the exercises tool. As questions can be shared between c_quiz, the real link between questions and quizzes is through the c_quiz_rel_question table

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
question question title
description question (longer) description, if any
ponderation max score for this question (usually calculated from the sum of scores from the answers)
position
type one of ~20 question types. Defined by constants in main/inc/lib/api.lib.php (search for "Question types" constants)
picture in the case of a hotspot question, path to the image
level level of difficulty. Only a string. Does not imply any logic change.
feedback feedback text shown to the student for this question
extra
question_code special code that can be added to each question
mandatory Whether answering this question is mandatory
duration Time limit for this question
parent_media_id Not a DB-enforced FK, but a logical reference to another c_quiz_question.iid used as the shared media/passage grouping this question (CQuizQuestion::$parentMediaId)

c_quiz_question_category

Categories of questions in quizzes

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
description

c_quiz_question_option

...

Field Definition
iid Unique identifier
question_id References c_quiz_question.iid (CQuizQuestionOption::$question)
title
position

c_quiz_question_rel_category

Relationship between a c_quiz_question and a c_quiz_question_category

Field Definition
question_id References c_quiz_question.iid (join column of CQuizQuestion::$categories)
category_id References c_quiz_question_category.iid (inverse join column of CQuizQuestion::$categories)

c_quiz_rel_category

Relationship between a c_quiz and a quiz category (see c_exercise_category)

Field Definition
iid Unique identifier
category_id References c_quiz_question_category.iid (CQuizRelQuestionCategory::$category)
exercise_id FK to c_quiz iid
count_questions
destinations Branching/destination configuration for this category (see c_quiz_destination_result)

c_quiz_rel_question

Relationship between a question (c_quiz_question) and a specific quiz (c_quiz)

Field Definition
iid Unique identifier
question_id References c_quiz_question.iid (CQuizRelQuestion::$question)
quiz_id References c_quiz.iid, renamed from exercice_id (CQuizRelQuestion::$quiz)
question_order
destination Branching/destination configuration for this question (see c_quiz_destination_result)

c_shortcut

A user-defined shortcut to a course resource, exposed as a resource-based entity itself so it can be listed/removed independently of the resource it points to. See CShortcut (src/CourseBundle/Entity/CShortcut.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id, the resource node backing this shortcut
shortcut_node_id References resource_node.id, the target resource the shortcut points to (CShortcut::$shortCutNode)
title

c_student_publication

An assignment handed over by a student

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
parent_id References c_student_publication.iid, the parent folder/submission in the hierarchy, if any (CStudentPublication::$publicationParent)
user_id See "Common fields"
group_category_id References c_group_category.iid, the group category associated with this assignment/work, if any (CStudentPublication::$groupCategory)
title
description
author
active
accepted
post_group_id References c_group_info.iid, the course group this submission/assignment was posted to, if any (CStudentPublication::$postGroupId)
sent_date
filetype
has_properties
view_properties
qualification
date_of_qualification
qualificator_id References user.id, the teacher who qualified/scored this submission (CStudentPublication::$qualificatorId)
weight
allow_text_assignment
contains_file
document_id References c_document.iid, the document associated with this submission (CStudentPublication::$documentId)
filesize
duration
student_delete_own_publication
default_visibility
extensions
group_category_work_id

c_student_publication_assignment

Assigments definition (tasks/works)

Field Definition
iid Unique identifier
publication_id FK to c_student_publication iid
expires_on
ends_on
add_to_calendar
enable_qualification

c_student_publication_comment

Comments on c_student_publication

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
work_id FK to c_student_publication iid
user_id See "Common fields"
comment
file
sent_at

c_student_publication_correction

A correction/feedback file uploaded by a teacher for a student's assignment submission (c_student_publication); the newer resource-based counterpart to the url_correction column already on c_student_publication, created via CreateStudentPublicationCorrectionFileAction. See CStudentPublicationCorrection (src/CourseBundle/Entity/CStudentPublicationCorrection.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id, the resource node backing this correction file
title

c_student_publication_follow

Added in v3.1.

Teachers (or session coaches) following an assignment (a top-level c_student_publication folder). Followers are the only users e-mailed when a learner comments on a submission to that assignment. Kept separate from c_student_publication_rel_user, which lists the users an assignment is restricted to. Added in v3.1 (src/CoreBundle/Migrations/Schema/V310/Version20261020120000.php, which also makes each existing assignment's creator a follower). See CStudentPublicationFollow (src/CourseBundle/Entity/CStudentPublicationFollow.php).

Field Definition
id Unique identifier
publication_id References c_student_publication.iid, the assignment being followed (CStudentPublicationFollow::$publication). Deleted in cascade with the assignment
user_id References user.id, the teacher or session coach following the assignment (CStudentPublicationFollow::$user). Deleted in cascade with the user
created_at See "Common fields" (when the user started following the assignment)

The pair (publication_id, user_id) is unique (uniq_student_publication_follow).

c_student_publication_rel_document

Link between a document (c_document) that serves as a template to the assignments

Field Definition
iid Unique identifier
work_id FK to c_student_publication iid
document_id FK to c_document iid

c_student_publication_rel_user

Link between users and assignments (to assign specific assignments to a reduced number of users)

Field Definition
iid Unique identifier
work_id FK to c_student_publication iid
user_id See "Common fields"

c_survey

Surveys

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
parent_id References c_survey.iid (self-reference to the previous version of the same survey, used together with survey_version for survey versioning). Used by CSurvey::$surveyParent.
code
title
subtitle
lang
avail_from
avail_till
is_shared
template
intro
surveythanks
creation_date
invited
answered
invite_mail
reminder_mail
mail_subject
anonymous
access_condition
shuffle
one_question_per_page
survey_version
lft Gedmo nested-set tree metadata (left boundary), supporting survey versioning via the parent_id self-reference.
rgt Gedmo nested-set tree metadata (right boundary), supporting survey versioning via the parent_id self-reference.
lvl Gedmo nested-set tree metadata (depth level), supporting survey versioning via the parent_id self-reference.
survey_type
show_form_profile
form_fields
visible_results
is_mandatory
display_question_number
duration

c_survey_answer

Possible answers to survey questions (c_survey_question)

Field Definition
iid Unique identifier
survey_id References c_survey.iid. Used by CSurveyAnswer::$survey.
question_id References c_survey_question.iid. Used by CSurveyAnswer::$question.
option_id References c_survey_question_option.iid (the option chosen by the respondent). Stored as text rather than a typed foreign key: may be suffixed with @:@ plus free text for "other" answers, or hold a non-option value for open/percentage question types. Used by CSurveyAnswer::$optionId.
value
user
session_id See "Common fields"
c_lp_item_id References c_lp_item.iid (the learning-path item that launched this survey, when the survey is embedded within a learning path); not enforced as a foreign key. Used by CSurveyAnswer::$lpItemId.

c_survey_invitation

Invitations of users to surveys

Field Definition
iid Unique identifier
c_id See "Common fields"
session_id See "Common fields"
group_id FK to c_group_info iid
survey_id References c_survey.iid. Used by CSurveyInvitation::$survey.
user_id References user.id (the user being invited to answer the survey). Used by CSurveyInvitation::$user.
invitation_code
answered
invitation_date
reminder_date
answered_at
c_lp_item_id References c_lp_item.iid (the learning-path item that launched this survey, when the survey is embedded within a learning path); not enforced as a foreign key. Used by CSurveyInvitation::$lpItemId.

c_survey_question

Survey questions

Field Definition
iid Unique identifier
parent_id References c_survey_question.iid (the question this one depends on, for conditional/branching display: this question is shown only if parent_option_id was chosen as the answer to the parent question). Used by CSurveyQuestion::$parent.
parent_option_id References c_survey_question_option.iid (the option of the parent question that must be selected for this question to be shown, implementing conditional/branching survey logic). Used by CSurveyQuestion::$parentOption.
survey_id References c_survey.iid. Used by CSurveyQuestion::$survey.
survey_question
survey_question_comment
type
display
sort
shared_question_id References shared_survey_question.question_id, a legacy cross-course shared question bank table removed from the current schema (see "shared_survey_question" section); not enforced as a foreign key. Used by CSurveyQuestion::$sharedQuestionId.
max_value
survey_group_pri
survey_group_sec1
survey_group_sec2
is_required Whether this question is mandatory (1) or not (0)

c_survey_question_option

Options on survey questions

Field Definition
iid Unique identifier
question_id References c_survey_question.iid. Used by CSurveyQuestionOption::$question.
survey_id References c_survey.iid. Used by CSurveyQuestionOption::$survey.
option_text
sort
value

c_thematic

Highest level of thematic progress categorization

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
content
active

c_thematic_advance

Dates related to the progress in a thematic plan

Field Definition
iid Unique identifier
thematic_id References c_thematic.iid (CThematicAdvance::$thematic)
attendance_id References c_attendance.iid (CThematicAdvance::$attendance)
room_id References room.id (CThematicAdvance::$room)
content
start_date
duration
done_advance

c_thematic_plan

Second level of thematic progress

Field Definition
iid Unique identifier
thematic_id References c_thematic.iid (CThematicPlan::$thematic)
title
description
description_type

c_tool

Entries of available tools on the course homepage; each row now references the global tool catalog via tool_id (added by an earlier pass), so it stores only a position and resource-node pointer rather than the tool's own name/link/icon metadata

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
c_id See "Common fields"
session_id See "Common fields"
tool_id References tool.id (CTool::$tool) — the global tool-catalog entry this row activates for the course
title
position

c_tool_intro

Introduction sections. On the course homepage but also (if enabled) in each tool.

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
c_tool_id References c_tool.iid (CToolIntro::$courseTool) — the course tool entry this introduction belongs to
intro_text longtext with the HTML intro to the tool

c_wiki

Wiki pages in course

Field Definition
iid Unique identifier
resource_node_id A 1 to 1 reference to resource_node
c_id See "Common fields"
page_id Legacy grouping id, not a foreign key: set to the iid of the first version's row when a new page is created, then copied unchanged to every later version row of the same page (see version, reflink)
reflink
title
content
user_id See "Common fields"
group_id FK to c_group_info iid
dtime
addlock
editlock
visibility
addlock_disc
visibility_disc
ratinglock_disc
assignment
comment
progress
score
version
is_editing
time_edit
hits
linksto
tag
user_ip
session_id See "Common fields"

c_wiki_category

Categorization, with a nested-tree hierarchy, of wiki pages (c_wiki) in a course. See CWikiCategory (src/CourseBundle/Entity/CWikiCategory.php).

Field Definition
id Unique identifier
c_id See "Common fields"
session_id See "Common fields"
tree_root References c_wiki_category.id, the root category of this node's tree (CWikiCategory::$root)
parent_id References c_wiki_category.id, the parent category (CWikiCategory::$parent)
title
lft
lvl
rgt

c_wiki_conf

Wiki configuration in a course

Field Definition
iid Unique identifier
c_id See "Common fields"
page_id References c_wiki.page_id, the page-group this configuration applies to (matches across all version rows of the page, not a single c_wiki.iid); see CWikiConf::$pageId
task
feedback1
feedback2
feedback3
fprogress1
fprogress2
fprogress3
max_size
max_text
max_version
startdate_assig
enddate_assig
delayedsubmit

c_wiki_discuss

Conversations on each wiki page

Field Definition
iid Unique identifier
c_id See "Common fields"
publication_id References c_wiki.page_id — the wiki page (page group) being discussed, despite the generic name (see CWikiDiscuss::$publicationId, set from page_id in WikiDiscussionProcessor)
userc_id The user who posted the comment; references user.id — same convention as user_id in "Common fields" despite the non-standard column name (CWikiDiscuss::$usercId)
comment
p_score
dtime

c_wiki_mailcue

...

Field Definition
iid Unique identifier
c_id See "Common fields"
type
group_id See "Common fields"
session_id See "Common fields"
user_id See "Common fields"

c_wiki_rel_category

Many-to-many join table linking wiki pages (c_wiki) to their categories (c_wiki_category); mapped via CWiki::$categories, there is no dedicated entity class for this table. See CWiki (src/CourseBundle/Entity/CWiki.php).

Field Definition
wiki_id References c_wiki.iid; part of the composite primary key
category_id References c_wiki_category.id; part of the composite primary key

career

Careers (admin panel)

Field Definition
id Unique identifier
title
description
status
created_at
updated_at

catalogue_course_rel_access_url_rel_usergroup

See CatalogueCourseRelAccessUrlRelUsergroup (src/CoreBundle/Entity/CatalogueCourseRelAccessUrlRelUsergroup.php). Restricts a course's visibility in the public course catalogue, scoped to a given portal (access_url), to members of one usergroup; CatalogueController::listSessions()'s course counterpart treats an absent row for a course/URL pair as "unrestricted" and a usergroup_id of null on an existing row as "visible to everyone on that URL".

Field Definition
id Unique identifier
course_id See "Common fields"
access_url_id See "Common fields"
usergroup_id References usergroup.id; the usergroup allowed to see the course in the catalogue on this portal (CatalogueCourseRelAccessUrlRelUsergroup::$usergroup)

catalogue_session_rel_access_url_rel_usergroup

See CatalogueSessionRelAccessUrlRelUsergroup (src/CoreBundle/Entity/CatalogueSessionRelAccessUrlRelUsergroup.php). Session-side counterpart of catalogue_course_rel_access_url_rel_usergroup: restricts a session's visibility in the public course catalogue, scoped to a given portal (access_url), to members of one usergroup. Used by CatalogueController::listSessions(), which shows all sessions when no row exists for the current access_url, and otherwise only sessions whose linked usergroup (or no usergroup at all) matches one of the current user's usergroups.

Field Definition
id Unique identifier
session_id See "Common fields"
access_url_id See "Common fields"
usergroup_id References usergroup.id; the usergroup allowed to see the session in the catalogue on this portal (CatalogueSessionRelAccessUrlRelUsergroup::$usergroup)

chat

Chat sessions

Field Definition
id Unique identifier
from_user References user.id (the user who wrote the message)
to_user References user.id (the user who received the message)
message
sent
recd

chat_video

Videochat sessions (temporarily deprecated)

Field Definition
id Unique identifier
from_user
to_user
title
datetime

color_theme

See ColorTheme (src/CoreBundle/Entity/ColorTheme.php). Holds a reusable stylesheet/theme definition (a JSON bag of CSS variables); this is the target side of access_url_rel_color_theme, which links a theme to one or more portals via ColorTheme::$urls (AccessUrlRelColorTheme::$colorTheme).

Field Definition
id Unique identifier
title
variables JSON map of theme/CSS variables (ColorTheme::$variables)
slug Auto-generated from title (Gedmo slug)
created_at See "Common fields"
updated_at See "Common fields"

conference_activity

Attendance/participation event log for a conference_meeting (join/leave times, per-participant metrics, optional attendance-sign signature), fed by the videoconference provider's webhook. See ConferenceActivity (src/CoreBundle/Entity/ConferenceActivity.php), written via VideoConferenceCallbackController.

Field Definition
id Unique identifier
meeting_id References conference_meeting.id, the meeting this activity belongs to (ConferenceActivity::$meeting)
participant_id References user.id, the participating user (ConferenceActivity::$participant)
in_at
out_at
close
type
event
activity_data
signature_file
signed_at
metrics Per-participant analytics for the meeting, stored as JSON (dot-path accessors in ConferenceActivity)

conference_meeting

A video conference room (BigBlueButton or another supported provider) created for a course, optionally scoped to a session or course group, storing connection info, moderation state and passwords. See ConferenceMeeting (src/CoreBundle/Entity/ConferenceMeeting.php).

Field Definition
id Unique identifier
c_id See "Common fields"
session_id See "Common fields"
access_url_id See "Common fields"
group_id References c_group_info.iid, the course group this meeting is scoped to (ConferenceMeeting::$group)
user_id See "Common fields"
calendar_id Optional identifier of a related calendar event, set from the provider's callback payload; not a formal FK column
service_provider Name of the videoconference provider (e.g. bbb)
remote_id Identifier of the meeting on the provider's side
internal_meeting_id
title
attendee_pw
moderator_pw
record
status
welcome_msg
visibility
voice_bridge
video_url
has_video_m4v
created_at
closed_at
meeting_list_item
meeting_info_get
sign_attendance
reason_to_sign_attendance
account_email
webinar_schema

conference_recording

A recorded video/format entry produced for a conference_meeting. See ConferenceRecording (src/CoreBundle/Entity/ConferenceRecording.php).

Field Definition
id Unique identifier
meeting_id References conference_meeting.id, the meeting this recording belongs to (ConferenceRecording::$meeting)
format_type
resource_url

contact_form_contact_category

See ContactCategory (src/CoreBundle/Entity/ContactCategory.php). Category options offered in the public "contact us" form (ContactType, ContactCategoryController); each category carries the destination email address the message is sent to when that category is selected.

Field Definition
id Unique identifier
title
email Destination address for messages submitted under this category

course

Courses

Field Definition
id Unique identified (referenced by c_id everywhere else)
resource_node_id A 1 to 1 reference to resource_node
room_id not yet used
title
code
visual_code
directory
course_language
description
introduction Extended course description/marketing text shown in the course catalogue, in addition to the shorter description
visibility
show_score
tutor_name
department_name
department_url
video_url Promotional video URL shown in the course catalogue entry
sticky Whether the course is pinned/featured at the top of the course catalogue (special courses)
disk_quota
last_visit
last_edit
creation_date
expiration_date
subscribe
unsubscribe
registration_code
legal
activate_legal 0 if no particular legal terms. 1 to enable legal terms confirmation
add_teachers_to_sessions_courses
course_type_id References course_type.id. Stored as a plain scalar column (Course::$courseTypeId), not a Doctrine association
duration Estimated course duration, in seconds, shown (converted to hours) in the course catalogue
popularity View/enrollment counter used to rank courses in the course catalogue

course_category

Courses categories

Field Definition
id Unique identifier
parent_id References course_category.id (self-reference), the parent category (CourseCategory::$parent); plain adjacency-list hierarchy, not a Gedmo nested-set tree — ordering uses the separate tree_pos column instead of lft/rgt/lvl
asset_id References asset.id (CourseCategory::$asset), the category's icon/illustration image
title
code
tree_pos
children_count
auth_course_child
auth_cat_child
description

course_rel_category

Join table backing the many-to-many relation between course and course_category (Course::$categories, #[ORM\JoinTable(name: 'course_rel_category')] in src/CoreBundle/Entity/Course.php, inverse side CourseCategory::$courses). This is a newer, multi-valued categorization mechanism that coexists with the legacy single-value course.category_code string field — a course can belong to several course_category rows here in addition to (or instead of) its legacy category_code.

Field Definition
course_id See "Common fields"
course_category_id References course_category.id (Course::$categories)

course_rel_class

Relationship between course and usergroup

Field Definition
course_code FK to course.code! (to be changed to id in the future)
class_id References usergroup.id (a "class" in Chamilo is a usergroup row). Stored as a plain scalar column (CourseRelClass::$classId) — no Doctrine association exists for this field

course_rel_user

Subscription of users to courses (if not using sessions)

Field Definition
id Unique identifier
user_id See "Common fields"
c_id See "Common fields"
relation_type
status
is_tutor
sort
user_course_cat
legal_agreement
progress User's progress (0-100) in the course

course_rel_user_catalogue

Special accesses to catalogue by specific users

Field Definition
id Unique identifier
user_id See "Common fields"
c_id See "Common fields"
visible

course_request

Requests for courses by users (if the course requests feature is enabled)

Field Definition
id Unique identifier
user_id See "Common fields"
code
course_language
title
description
category_code
tutor_name
visual_code
request_date
objetives (note the spelling mistake here)
target_audience
status
info
exemplary_content

course_type

...

Field Definition
id Unique identifier
title
translation_var
description
props

ext_log_entries

Standard audit-trail table from the Gedmo Loggable Doctrine extension (bundled via stof/doctrine-extensions-bundle), meant to record property-level changes on any entity marked #[Gedmo\Loggable]. No entity in the codebase currently carries that attribute, and config/packages/stof_doctrine_extensions.yaml does not enable loggable (only tree, timestampable, sluggable, softdeleteable, sortable, translatable are on), so this table is provisioned but currently unused/vestigial.

Field Definition
id Unique identifier
action Loggable action type (create, update, remove)
logged_at
object_id ID of the logged entity instance
object_class Fully-qualified class name of the logged entity
version Sequential version number in this entity instance's log history
data Serialized array of the changed field values
username Username of the user who made the change

ext_translations

Per-locale field-value store from the Gedmo Translatable Doctrine extension (stof/doctrine-extensions-bundle), enabled via translatable: true in config/packages/stof_doctrine_extensions.yaml. Actively used by the three entities implementing Gedmo\Translatable\Translatable: Skill (src/CoreBundle/Entity/Skill.php), ExtraField (src/CoreBundle/Entity/ExtraField.php) and ExtraFieldOptions (src/CoreBundle/Entity/ExtraFieldOptions.php).

Field Definition
id Unique identifier
locale
object_class Fully-qualified class name of the translated entity
field Name of the translated property on that entity
foreign_key ID of the translated entity instance
content The translated value for field in locale

extra_field

Extra fields definition. Also defines which type of resource it applies to (users, courses, quizzes, etc)

Field Definition
id Unique identifier
item_type
value_type
variable
description
display_text
helper_text
default_value
field_order
visible_to_self
visible_to_others
changeable
filter
created_at
auto_remove 1 if this field's values should be automatically deleted when the user is anonymized (UserAnonymizationHelper)

extra_field_option_rel_field_option

...

Field Definition
id Unique identifier
field_option_id References extra_field_options.id — the option value that, when selected, drives this dependency rule (ExtraFieldOptionRelFieldOption::$extraFieldOption)
related_field_option_id References extra_field_options.id — the dependent option value to show/enable when field_option_id is selected (ExtraFieldOptionRelFieldOption::$relatedFieldOption)
role_id Not a foreign key to a database table; stores a legacy user-role constant (e.g. STUDENT, COURSEMANAGER) scoping which role this option-dependency rule applies to (ExtraFieldOptionRelFieldOption::$roleId)
field_id References extra_field.id (ExtraFieldOptionRelFieldOption::$field)

extra_field_options

Possible values for extra_field_values

Field Definition
id Unique identifier
field_id References extra_field.id (ExtraFieldOptions::$field)
option_value
display_text
priority
priority_message
option_order

extra_field_rel_tag

Tags on extra fields

Field Definition
id Unique identifier
field_id References extra_field.id (ExtraFieldRelTag::$field)
tag_id References tag.id (ExtraFieldRelTag::$tag)
item_id ID of the tagged item — polymorphic, depends on the field's extra_field.extra_field_type (e.g. user.id, course.id), not a fixed FK (ExtraFieldRelTag::$itemId)

extra_field_saved_search

...

Field Definition
id Unique identifier
field_id References extra_field.id (ExtraFieldSavedSearch::$field)
user_id See "Common fields"
value
created_at
updated_at

extra_field_values

Values stored for specific resources in specific extra fields

Field Definition
id Unique identifier
field_id References extra_field.id (ExtraFieldValues::$field)
asset_id References asset.id, allows the value to be an uploaded asset/file instead of plain text (ExtraFieldValues::$asset)
field_value
item_id ID of the resource this value is attached to — polymorphic, depends on the field's extra_field.item_type (e.g. user.id, course.id), not a fixed FK (ExtraFieldValues::$itemId)
comment
created_at
updated_at

fos_group

Leftover table from FOSUserBundle's group concept (Chamilo's User entity historically extended FOSUserBundle's base user). It maps to the Group entity (src/CoreBundle/Entity/Group.php) and is still live: User::getRoles() merges each group's roles into its members' Symfony roles, though no #[ApiResource] or admin UI exists to manage groups — only GroupRepository references the entity, so rows can only reach this table via direct DB/fixture/migration work.

Field Definition
id Unique identifier
code
title
roles Array of Symfony role strings (e.g. ROLE_...) granted to every member of this group

fos_user_user_group

Pivot table from FOSUserBundle linking user to fos_group (see Group::$users / User::$groups). Still live — it feeds role computation in User::getRoles() (see fos_group above).

Field Definition
user_id See "Common fields"
group_id References fos_group.id

grade_components

...

Field Definition
id Unique identifier
percentage
title
acronym
grade_model_id References grade_model.id. Used by GradeComponents::$gradeModel.

grade_model

...

Field Definition
id Unique identifier
title
description
default_lowest_eval_exclude
default_external_eval
default_external_eval_prefix

gradebook_category

Highest level of the gradebook structure (attributing certificates and skills). Despite the name, this is not a gradebook "category" but rather the list of all gradebooks, which can include sub-gradebooks, but they are still each a fully-functional gradebook.

Field Definition
id Unique identifier
user_id See "Common fields"
c_id See "Common fields"
parent_id Recursive reference to gradebook_category.id. Sub-gradebooks reference the main gradebook through this field.
session_id See "Common fields"
grade_model_id Reference to a grade_model.id
document_id References c_document.iid (the document explaining/describing this gradebook, e.g. for certificate purposes). Used by GradebookCategory::$document.
title
description
weight
visible
certif_min_score
locked
default_lowest_eval_exclude
generate_certificates
certificate_validity_period Number of days the linked certificate remains valid after being awarded. Used by GradebookCategory::$certificateValidityPeriod.
is_requirement Whether this gradebook's completion is a requirement to finish the course (1) or not (0)
depends Serialized (PHP serialize()) list of other gradebook_category.id values this gradebook depends on (prerequisite gradebooks a learner must validate first). Used by GradebookCategory::$depends.
minimum_to_validate Minimum number of assessments required to validate this gradebook, used together with gradebooks_to_validate_in_dependence in the dependency-validation formula. Used by GradebookCategory::$minimumToValidate.
gradebooks_to_validate_in_dependence Minimum number of the gradebooks listed in depends that must already be validated for this gradebook to be considered validated. Used by GradebookCategory::$gradeBooksToValidateInDependence.
allow_skills_by_subcategory Whether skills can be awarded at the sub-category (child gradebook) level (1, default) rather than only on the top-level category (0). Used by GradebookCategory::$allowSkillsBySubcategory.

gradebook_certificate

Generated certificates

Field Definition
id Unique identifier
resource_node_id References resource_node.id. GradebookCertificate extends AbstractResource and uses the resource node system for file storage.
cat_id References gradebook_category.id. Used by GradebookCertificate::$category.
user_id See "Common fields"
score_certificate
created_at
path_certificate
downloaded_at Timestamp of the last time the certificate was downloaded, if any. Used by GradebookCertificate::$downloadedAt.
publish Whether the certificate is published (visible to the user) or not. Used by GradebookCertificate::$publish.

gradebook_comment

Free-text comment on a gradebook_category (the gradebook itself, not an individual result) — despite the column name gradebook_id, the foreign key actually targets gradebook_category. See GradebookComment (src/CoreBundle/Entity/GradebookComment.php).

Field Definition
id Unique identifier
user_id See "Common fields"
gradebook_id References gradebook_category.id, the GradebookComment::$gradeBook property
comment
created_at
updated_at

gradebook_evaluation

External evaluation scored in the gradebook

Field Definition
id Unique identifier
c_id See "Common fields"
category_id References gradebook_category.id. Used by GradebookEvaluation::$category.
title
description
created_at
weight
max
visible
type
locked
best_score Cached best score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookEvaluation::$bestScore.
average_score Cached average score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookEvaluation::$averageScore.
score_weight Cached weighted score value, a denormalized value kept for performance. Used by GradebookEvaluation::$scoreWeight.
user_score_list Cached list of per-user scores (serialized array), a denormalized value kept for performance. Used by GradebookEvaluation::$userScoreList.
min_score Cached minimum score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookEvaluation::$minScore.

gradebook_link

Internal evaluation (Chamilo resources) scored in the gradebook

Field Definition
id Unique identifier
c_id See "Common fields"
category_id References gradebook_category.id. Used by GradebookLink::$category.
type
ref_id Polymorphic reference: the target table depends on the sibling type column (plain int column, not a Doctrine-mapped association). Per the legacy LinkFactory::create(): type=1 (LINK_EXERCISE) → c_quiz.iid; type=3 (LINK_STUDENTPUBLICATION) → c_student_publication.iid; type=4 (LINK_LEARNPATH) → c_lp.iid; type=5 (LINK_FORUM_THREAD) → c_forum_thread.iid; type=7 (LINK_ATTENDANCE) → c_attendance.iid; type=8 (LINK_SURVEY) → c_survey.iid; type=9 (LINK_HOTPOTATOES) → c_document.iid. Used by GradebookLink::$refId.
created_at
weight
visible
locked
best_score Cached best score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookLink::$bestScore.
average_score Cached average score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookLink::$averageScore.
score_weight Cached weighted score value, a denormalized value kept for performance. Used by GradebookLink::$scoreWeight.
user_score_list Cached list of per-user scores (serialized array), a denormalized value kept for performance. Used by GradebookLink::$userScoreList.
min_score Cached minimum score achieved among users evaluated, a denormalized value kept for performance. Used by GradebookLink::$minScore.

gradebook_linkeval_log

...

Field Definition
id Unique identified
user_id_log See "Common fields"
id_linkeval_log
title
description
weight
visible
type
created_at

gradebook_result

Results of users on gradebook_link or gradebook_evaluation

Field Definition
id Unique identifier
user_id See "Common fields"
evaluation_id References gradebook_evaluation.id. Used by GradebookResult::$evaluation.
created_at
score

gradebook_result_attempt

A scored/commented attempt underlying a single gradebook_result entry, used when a result's score is built from more than one recorded attempt. See GradebookResultAttempt (src/CoreBundle/Entity/GradebookResultAttempt.php).

Field Definition
id Unique identifier
result_id References gradebook_result.id
comment
score
created_at
updated_at

gradebook_result_log

...

Field Definition
id Unique identifier
result_id References gradebook_result.id. Used by GradebookResultLog::$result.
evaluation_id References gradebook_evaluation.id. Used by GradebookResultLog::$evaluation.
user_id See "Common fields"
created_at
score

gradebook_score_display

...

Field Definition
id Unique identifier
score
display
category_id References gradebook_category.id. Used by GradebookScoreDisplay::$category.
score_color_percent

gradebook_score_log

...

Field Definition
id Unique identifier
category_id References gradebook_category.id. Used by GradebookScoreLog::$category.
user_id See "Common fields"
score
registered_at

illustration

See Illustration (src/CoreBundle/Entity/Illustration.php). Generic image/asset entity in Chamilo's resource-node system: each row is linked 1-to-1 to a resource_node and holds the illustration/cover image for whichever entity that node belongs to. Any entity implementing ResourceIllustrationInterface (e.g. Course, Usergroup, User) can have one attached this way, used for course cover images, usergroup images, and user avatars.

Field Definition
id Unique identifier (UUID)
resource_node_id References resource_node.id; the resource node this illustration is attached to (AbstractResource::$resourceNode)
title
created_at See "Common fields"
updated_at See "Common fields"

justification_document

Defines a type of supporting document that users may be required to upload (e.g. to remain enrolled in a course), configured by an administrator through the legacy Justification plugin (public/plugin/Justification/). See JustificationDocument (src/CoreBundle/Entity/JustificationDocument.php).

Field Definition
id Unique identifier
code Unique short code identifying the justification document type
name Display name of the justification document type
validity_duration Number of days an uploaded document remains valid
comment
date_manual_on Flag: whether the validity date is entered manually by the user on upload instead of computed from validity_duration

justification_document_rel_users

A user's uploaded file for a required justification_document, together with the date until which it is considered valid. See JustificationDocumentRelUsers (src/CoreBundle/Entity/JustificationDocumentRelUsers.php).

Field Definition
id Unique identifier
justification_document_id References justification_document.id
user_id See "Common fields"
file_path
date_validity Date until which the uploaded document is considered valid

language

The language supported for the user interface, and sublanguages

Field Definition
id Unique identifier
parent_id References language.id (self-reference), the parent language for sublanguages/regional variants (Language::$parent); plain adjacency list, not a Gedmo tree
original_name
english_name
isocode
available

legal

Terms and conditions

Field Definition
id Unique identifier
date
content
type
changes
version
language_id References language.id

lti_external_tool

Registered external tool ("resource link") that Chamilo can launch as an LTI Platform (Tool Consumer), supporting both LTI 1.0/1.1 (consumer key/shared secret) and LTI Advantage 1.3 (OAuth2/OIDC with client id, JWKS, deep linking, AGS/NRPS). See ExternalTool (src/LtiBundle/Entity/ExternalTool.php), which extends AbstractResource so each tool is also a resource node placeable in a course.

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
gradebook_eval_id References gradebook_evaluation.id; optional gradebook evaluation this tool's results are reported into, see ExternalTool::$gradebookEval
title
description
public_key Public key of the tool, used to verify JWTs signed by the tool (LTI Advantage client credentials grant), see LtiTokenRequest::decodeJwt()
launch_url Tool's launch URL, submitted as the LTI launch form action
consumer_key LTI 1.0/1.1 consumer key
shared_secret LTI 1.0/1.1 shared secret
custom_params Newline-separated key=value custom parameters sent with the launch, see ExternalTool::getCustomParamsAsArray()
active_deep_linking 1 if the tool is launched as an LTI Deep Linking request instead of a resource link request
privacy Serialized flags controlling whether the user's name/email/picture are shared with the tool, see ExternalTool::setPrivacy()
client_id LTI Advantage (1.3) OAuth2 client id issued to the tool
login_url LTI Advantage OIDC third-party initiated login URL
redirect_url LTI Advantage OIDC redirect URI the platform is allowed to send the id_token to
jwks_url URL of the tool's JSON Web Key Set, used to verify tool-signed JWTs
advantage_services JSON map of enabled LTI Advantage services (Assignment and Grade Services, Names and Role Provisioning Service), see ExternalTool::getAdvantageServices()
version LTI protocol version used by the tool (lti1p1 or lti1p3), see ExternalTool::V_1P1/V_1P3
launch_presentation JSON launch presentation options (e.g. document_target: iframe/window)
replacement_params JSON map of custom parameter substitutions (e.g. replacement value for user_id)

lti_lineitem

An LTI Advantage Assignment and Grade Services (AGS) line item — a gradable column exposed to an external tool, backed by one gradebook evaluation. See LineItem (src/LtiBundle/Entity/LineItem.php).

Field Definition
id Unique identifier
tool_id References lti_external_tool.id; the tool this line item belongs to, see LineItem::$tool
evaluation References gradebook_evaluation.id; the gradebook evaluation whose scores are exposed/updated through this line item, see LineItem::$evaluation
resource_id Tool-defined resource identifier for the line item (LTI AGS resourceId)
tag Tool-defined tag for the line item (LTI AGS tag)
start_date
end_date

lti_platform

Chamilo's own LTI Advantage (1.3) platform key pair, used to sign the id_token JWTs issued to external tools during launch. See Platform (src/LtiBundle/Entity/Platform.php); populated on demand via ImsLtiPlugin::ensurePlatformKeys() and read as a singleton row (findOneBy([])) in the OIDC auth endpoint.

Field Definition
id Unique identifier
public_key Public half of the platform's RSA key pair, exposed to tools via the JWKS endpoint
kid Key ID included in the JWT header so tools can pick the right JWKS entry
private_key Private half of the platform's RSA key pair, used to sign launch JWTs

lti_token

OAuth2 access tokens issued by Chamilo (acting as an LTI Advantage platform) to an external tool under the client-credentials grant, granting the tool scoped access to AGS/NRPS services. See Token (src/LtiBundle/Entity/Token.php), created by LtiTokenRequest::generateToken().

Field Definition
id Unique identifier
tool_id References lti_external_tool.id; the tool the token was issued to, see Token::$tool
scope JSON array of OAuth2 scopes granted to the token (e.g. AGS line item/score scopes)
hash The access token value returned to the tool as the bearer token
created_at Unix timestamp of token issuance
expires_at Unix timestamp of token expiry (created_at + Token::TOKEN_LIFETIME, 3600s)

mail_template

...

Field Definition
id Unique identifier
author_id References user.id, the user who authored this mail template (MailTemplate::$author)
url_id See "Common fields"
title
template
type
default_template
system
created_at
updated_at

message

User messages on the social network + all messages sent by the system by e-mail and saved for the local inbox. Recipients are tracked in the message_rel_user table rather than directly on this table.

Field Definition
id Unique identifier
user_sender_id References user.id as the sender of the message
group_id References usergroup.id, the group this message was posted to, if any (Message::$group)
parent_id References message.id, the message this one is a reply to, if any (Message::$parent)
msg_type
status
send_date
title
content
update_date
votes

message_attachment

File attachments for message. Note that at this point the

Field Definition
id
resource_node_id A 1 to 1 reference to resource_node
message_id References message.id, the message this attachment belongs to (MessageAttachment::$message)
path
comment
size
filename

message_rel_user

Per-recipient status of a message — read/unread, starred, soft-deleted, and the recipient role (receiver_type: to, CC, wall post, group, invitation, sender's own outbox copy, etc.) — the modern per-recipient inbox model layered on top of message. See MessageRelUser (src/CoreBundle/Entity/MessageRelUser.php).

Field Definition
id Unique identifier
message_id References message.id
user_id See "Common fields"
msg_read
receiver_type
starred
deleted_at

message_rel_user_rel_tags

Join table for the many-to-many relation between message_rel_user and message_tag, mapped by the tags property of MessageRelUser (src/CoreBundle/Entity/MessageRelUser.php) — no dedicated entity class backs this table.

Field Definition
message_rel_user_id References message_rel_user.id
message_tag_id References message_tag.id

message_tag

A user-defined label (name, color, sort position) that a user can attach to their own inbox messages via message_rel_user_rel_tags, similar to e-mail labels. See MessageTag (src/CoreBundle/Entity/MessageTag.php).

Field Definition
id Unique identifier
user_id See "Common fields"
tag
color
position
created_at
updated_at

notification

...

Field Definition
id
dest_user_id See "Common fields"
dest_mail
title
content
send_freq
created_at
sent_at

notification_event

Definition of a notifiable system event — either account expiration or justification-document expiration, per the event_type constants in NotificationEvent::getEventsForSelect() — that can be scheduled to fire a number of days (day_diff) before/after a reference date. Feeds the notification table. See NotificationEvent (src/CoreBundle/Entity/NotificationEvent.php).

Field Definition
id Unique identifier
title
content
link
persistent
day_diff
event_type
event_id References the entity named by event_type (e.g. justification_document.id when the event type is "Justification expiration"); unused for other event types

notification_event_rel_user

Per-user fan-out for a notification_event, recording which users should receive that event's notification. See NotificationEventRelUser (src/CoreBundle/Entity/NotificationEventRelUser.php).

Field Definition
id Unique identifier
event_id References notification_event.id
user_id See "Common fields"

page

Static CMS content pages that platform admins can build (e.g. homepage/footer/FAQ content), each scoped to an access URL, attributed to a creator, and optionally grouped into a page_category. See Page (src/CoreBundle/Entity/Page.php).

Field Definition
id Unique identifier
access_url_id See "Common fields"
creator_id References user.id (Page::$creator)
category_id References page_category.id (Page::$category)
title
content HTML body of the page
slug Auto-generated from title (Gedmo slug), used in the page's URL
enabled
position Sort order among the pages of the same category (Gedmo sortable)
locale
created_at
updated_at

page_category

Groups page rows for display purposes (e.g. the platform's homepage grid, its footer, its FAQ). Some category titles are treated as reserved by code: PageCategory::ADMIN_BLOCKS_CATEGORIES are hidden from non-admins and PageCategory::ANONYMOUS_CATEGORIES are the only ones shown to unauthenticated visitors (enforced in PageExtension, src/CoreBundle/DataProvider/Extension/PageExtension.php). See PageCategory (src/CoreBundle/Entity/PageCategory.php).

Field Definition
id Unique identifier
creator_id References user.id (PageCategory::$creator)
title
type Rendering type for the category's pages; the default categories seeded by PageHelper all use grid
created_at
updated_at

page_layout

A saved page layout: a JSON block/column arrangement (layout) bound to a specific site url (e.g. /index.php), optionally restricted to a comma-separated list of roles, and optionally started from a page_layout_template. Built and edited from assets/vue/views/pageLayout/Create.vue and Edit.vue. See PageLayout (src/CoreBundle/Entity/PageLayout.php).

Field Definition
id Unique identifier
page_layout_template_id References page_layout_template.id (PageLayout::$pageLayoutTemplate); the starter template the layout's JSON was initialized from
created_by References user.id (PageLayout::$createdBy)
updated_by References user.id (PageLayout::$updatedBy)
url Site path this layout applies to
roles Optional comma-separated list of roles allowed to see this layout (e.g. ROLE_TEACHER)
layout JSON definition of the page's blocks/columns
created_at
updated_at

page_layout_template

A reusable starter layout: a named JSON block/column structure (layout) that can be picked when creating a new page_layout, so its JSON is copied into the new layout instead of starting from scratch. See PageLayoutTemplate (src/CoreBundle/Entity/PageLayoutTemplate.php).

Field Definition
id Unique identifier
name
layout JSON definition of the template's blocks/columns

permission

Defines a single granular permission key/action (e.g. user:create) that can be granted to roles through permission_rel_role. This is a newer, finer-grained authorization catalog distinct from the legacy user.status/admin table role model. Managed via /permissions (PermissionsController, src/CoreBundle/Controller/PermissionsController.php). See Permission (src/CoreBundle/Entity/Permission.php).

Field Definition
id Unique identifier
title
slug Permission key/action string (e.g. user:create)
description

permission_rel_role

Many-to-many grant table linking a permission to a role: the presence of a row means that role has been granted that permission through the admin /permissions UI. PermissionHelper::hasPermission() (src/CoreBundle/Helpers/PermissionHelper.php) can query it by permission slug and role codes; it is called via the legacy wrapper api_get_permission() in public/main/inc/lib/api.lib.php, itself invoked as a fallback inside the legacy course-edit permission check — so this RBAC layer is consumed, but only through that legacy api.lib.php permission-fallback path, not through a Symfony security voter or is_granted() check. See PermissionRelRole (src/CoreBundle/Entity/PermissionRelRole.php).

Field Definition
id Unique identifier
permission_id References permission.id (PermissionRelRole::$permission)
role_id References role.id (PermissionRelRole::$role)
changeable Set to true whenever the grant row is created/kept via the admin UI
updated_at

personal_file

A file stored by a user in the personal "My Files" tool, linked to its content via resource_node. See PersonalFile (src/CoreBundle/Entity/PersonalFile.php); also the target of copying a CDocument into a user's personal files (CopyDocumentToPersonalFileProcessor).

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
title
comment
created_at
updated_at

plugin

Registry of plugins known to the platform (bundled or third-party), tracking install state and version. Reflected by the Doctrine entity Plugin (src/CoreBundle/Entity/Plugin.php); per-URL activation/configuration lives in access_url_rel_plugin.

Field Definition
id Unique identifier
title Plugin machine name (e.g. BuyCourses)
installed 1 if the plugin has run its install routine
installed_version Version string of the currently installed schema/code
source official or third_party (Plugin::SOURCE_OFFICIAL / SOURCE_THIRD_PARTY)

portfolio

Student ePortfolio items (a piece of work, reflection or evidence submitted by a student). See Portfolio (src/CoreBundle/Entity/Portfolio.php).

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
category_id References portfolio_category.id, the category this item is filed under (Portfolio::$category)
duplicated_from References portfolio.id, the original item this one was duplicated from, e.g. when copied into a session (Portfolio::$duplicatedFrom)
title
content
visibility
origin
origin_type
score
is_highlighted
is_template

portfolio_category

Categories used by students to group their own ePortfolio items. See PortfolioCategory (src/CoreBundle/Entity/PortfolioCategory.php).

Field Definition
id Unique identifier
user_id See "Common fields"
parent_id References portfolio_category.id, the parent category, for nested categories (PortfolioCategory::$parent)
title
description
is_visible

portfolio_comment

Comments left on a portfolio item, e.g. by a teacher reviewing a student's work. See PortfolioComment (src/CoreBundle/Entity/PortfolioComment.php).

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
item_id References portfolio.id, the portfolio item this comment belongs to (PortfolioComment::$item)
visibility
content
date
is_important
score
is_template

portfolio_rel_tag

Links a portfolio item's course/session context to shared tags. See PortfolioRelTag (src/CoreBundle/Entity/PortfolioRelTag.php).

Field Definition
id Unique identifier
tag_id References tag.id (PortfolioRelTag::$tag)
c_id See "Common fields"
session_id See "Common fields"

promotion

Promotions are contained in careers and contain sessions.

Field Definition
id
career_id References career.id (Promotion::$career)
title
description
status
created_at
updated_at

push_subscription

A per-user Web Push notification subscription (browser endpoint and encryption keys), one row per registered device/browser. See PushSubscription (src/CoreBundle/Entity/PushSubscription.php).

Field Definition
id Unique identifier
user_id See "Common fields"
endpoint
public_key
auth_token
content_encoding
user_agent
created_at
updated_at

reset_password_request

See ResetPasswordRequest (src/CoreBundle/Entity/ResetPasswordRequest.php). Standard token table from the symfonycasts/reset-password-bundle (via ResetPasswordRequestTrait/ResetPasswordRequestInterface), used by ResetPasswordController to back the "forgot password" flow: a hashed, expiring token is issued per request and matched against a selector when the user clicks the reset link.

Field Definition
id Unique identifier
user_id See "Common fields"
selector Public lookup key sent in the reset link, used to find the row without exposing the token
hashed_token Hash of the actual reset token; verified against the token submitted by the user
requested_at Timestamp the reset was requested
expires_at Timestamp after which the request is no longer valid

resource_comment

Threaded comments attached to a resource node (e.g. a document), stored as a nested set tree so replies can be nested under their parent comment. See ResourceComment (src/CoreBundle/Entity/ResourceComment.php), managed through ResourceCommentType (src/CoreBundle/Form/Type/ResourceCommentType.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id. Used by ResourceComment::$resourceNode.
author_id References user.id. Used by ResourceComment::$author.
parent_id References resource_comment.id (self-reference). Used by ResourceComment::$parent to nest replies.
content Text of the comment
created_at
updated_at
root Gedmo nested-set root id of the comment tree
lvl Gedmo nested-set depth level
lft Gedmo nested-set left boundary
rgt Gedmo nested-set right boundary

resource_file

One physical file (or file variant) attached to a resource node; a node can have several files (e.g. different languages or formats). See ResourceFile (src/CoreBundle/Entity/ResourceFile.php), created via CreateResourceFileAction/AddVariantResourceFileAction (src/CoreBundle/Controller/).

Field Definition
id Unique identifier
language_id References language.id. Optional language of this file variant, used by ResourceFile::$language.
access_url_id See "Common fields"
resource_node_id References resource_node.id. Used by ResourceFile::$resourceNode.
title Stored file name (Vich uploader fileNameProperty)
mime_type
original_name Original file name as uploaded by the user
dimensions Width/height pair, for image files
size File size in bytes
crop Crop parameters as width,height,x,y
metadata Free-form array of extra file metadata
description
updated_at
created_at

resource_format

Lookup table of resource format variants (e.g. html, txt) that a resource_node can declare, used to distinguish alternative renderings of the same resource. See ResourceFormat (src/CoreBundle/Entity/ResourceFormat.php), seeded by ResourceFormatFixtures.

Field Definition
id Unique identifier
title Format name, e.g. html or txt
created_at
updated_at

resource_link

Allocates a resource_node to a context (course, session, course group, user group, or individual user) and holds its visibility/ordering within that context; a resource node can have several links, one per context. See ResourceLink (src/CoreBundle/Entity/ResourceLink.php), evaluated by ResourceNodeVoter (src/CoreBundle/Security/Authorization/Voter/ResourceNodeVoter.php) and ResourceAclHelper (src/CoreBundle/Helpers/ResourceAclHelper.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id. Used by ResourceLink::$resourceNode.
parent_id References resource_link.id (self-reference). Parent link for the document hierarchy within the same context, used by ResourceLink::$parent.
c_id See "Common fields"
session_id See "Common fields"
usergroup_id References usergroup.id. Used by ResourceLink::$userGroup.
group_id References c_group_info.iid. Used by ResourceLink::$group (course group).
user_id See "Common fields"
visibility Visibility state: 0 draft, 1 pending, 2 published (ResourceLink::VISIBILITY_*)
start_visibility_at Date from which the resource becomes visible in this context
end_visibility_at Date after which the resource stops being visible in this context
display_order Sort order among sibling links (Gedmo sortable position)
resource_type_group Copy of the resource's resource_type_id, used as the Gedmo sortable group so ordering is scoped per resource type
deleted_at Soft-delete timestamp (Gedmo SoftDeleteable)
created_at
updated_at

resource_node

The central "essence" table of Chamilo's generic resource system: every resource entity (CDocument, CLp, etc.) points to one resource_node row, which carries the shared title/slug/tree-path/creator/type data common to all resource kinds, while resource_link and resource_file attach the per-context allocation and the actual files. See ResourceNode (src/CoreBundle/Entity/ResourceNode.php), authorized by ResourceNodeVoter (src/CoreBundle/Security/Authorization/Voter/ResourceNodeVoter.php).

Field Definition
id Unique identifier
resource_type_id References resource_type.id. Used by ResourceNode::$resourceType to identify which tool/kind of resource this node represents.
resource_format_id References resource_format.id. Used by ResourceNode::$resourceFormat.
language_id References language.id. Optional language of the node, used by ResourceNode::$language.
creator_id References user.id. Used by ResourceNode::$creator.
parent_id References resource_node.id (self-reference). Used by ResourceNode::$parent (Gedmo materialized-path tree).
title
slug URL-friendly identifier derived from title (Gedmo Slug)
level Gedmo materialized-path tree depth
path Gedmo materialized-path string, e.g. Root-1/subdir-2/file.txt-3/
created_at
updated_at
public 1 if the resource is publicly accessible without a specific resource_link grant
uuid Unique UUID for the node, used where an opaque external identifier is needed

resource_right

A permission bit-mask granted to a role on a given resource_link, implementing Chamilo's per-context ACL for resources. See ResourceRight (src/CoreBundle/Entity/ResourceRight.php), consumed by ResourceAclHelper::isAllowed() (src/CoreBundle/Helpers/ResourceAclHelper.php) which builds a Laminas ACL from these rows, and edited via ResourceRightType (src/CoreBundle/Form/Type/ResourceRightType.php).

Field Definition
id Unique identifier
resource_link_id References resource_link.id. Used by ResourceRight::$resourceLink.
role Role this right applies to, e.g. ROLE_CURRENT_COURSE_STUDENT, ROLE_CURRENT_COURSE_TEACHER
mask Bit-mask of allowed actions (VIEW/CREATE/EDIT/DELETE/EXPORT), built by ResourceAclHelper::getPermissionMask()

resource_tag

Free-tagging label that can be attached to resources by their author. See ResourceTag (src/CoreBundle/Entity/Resource/ResourceTag.php).

Field Definition
id Unique identifier
author_id References user.id. Used by ResourceTag::$author.
title
created_at
updated_at

resource_type

Lookup table enumerating the kinds of resource that can exist (documents, links, illustrations, etc.), each tied to the Chamilo tool that owns it; resource_node.resource_type_id points here to say what kind of resource a node is. See ResourceType (src/CoreBundle/Entity/ResourceType.php).

Field Definition
id Unique identifier
tool_id References tool.id. Used by ResourceType::$tool to link the resource type to the Chamilo tool it belongs to.
title Resource type name, e.g. documents, illustrations, courses
created_at
updated_at

resource_user_tag

Join table recording which resource_tag a user has applied, implementing free-tagging for users (as opposed to tagging resources directly). See ResourceUserTag (src/CoreBundle/Entity/Resource/ResourceUserTag.php).

Field Definition
id Unique identifier
user_id See "Common fields"
tag_id References resource_tag.id. Used by ResourceUserTag::$tag.
created_at
updated_at

role

Defines a named role for the granular permission system above (code, e.g. STUDENT, TEACHER, ADMIN; a numeric constant_value for ordering; and a system_role flag for the built-in roles seeded by RoleFixtures). This is a separate catalog from Symfony's ROLE_* security roles and from the legacy user.status field, though its codes mirror the same role names. See Role (src/CoreBundle/Entity/Role.php).

Field Definition
id Unique identifier
code Role code, e.g. STUDENT, TEACHER, ADMIN
constant_value Numeric ordering/legacy-status value for the role
title
description
system_role Whether this is one of the built-in roles (seeded by RoleFixtures), as opposed to a custom role
created_at
created_by References user.id
updated_at
updated_by References user.id

room

Rooms are an item for a future feature in Chamilo allowing you to define a physical or virtual room for a synchronous lesson.

Field Definition
id
branch_id Reference to branch_sync.id
title
description
geolocation
ip IP address of the room or virtual room, if any (can be IPv4 or IPv6)
ip_mask IP mask if "ip" is a network address
floor_number Floor on which the room is located
capacity Maximum number of people the room can host

scheduled_announcements

If the scheduled announcements for sessions are enabled, contains the messages scheduled to be sent at specific dates to session users

Field Definition
id
subject
message
date
sent
session_id See "Common fields"
c_id See "Common fields"

search_engine_field

Catalog of indexable "specific search fields" for the Xapian search engine: each row is a single-letter Xapian prefix (code) with a human-readable title. This is the resource-node-based successor to the legacy specific_field table (id, code, name), which served the same purpose for the older course/tool/ref-scoped indexing model. See SearchEngineField (src/CoreBundle/Entity/SearchEngineField.php).

Field Definition
id Unique identifier
code Single-character Xapian field prefix
title

search_engine_field_value

Stores the value of one search_engine_field for one resource_node, one row per (resource node, field) pair. This is the ResourceNode-based successor to the legacy specific_field_values table, which instead keyed values by course_code + tool_id + ref_id; both ultimately feed indexable metadata into the Xapian search layer (see also the legacy search_engine_ref table, which stores the Xapian document-id mapping rather than field values). See SearchEngineFieldValue (src/CoreBundle/Entity/SearchEngineFieldValue.php).

Field Definition
id Unique identifier
resource_node_id References resource_node.id (SearchEngineFieldValue::$resourceNode)
field_id References search_engine_field.id (SearchEngineFieldValue::$field)
value

search_engine_ref

Internal data on indexer with Xapian

Field Definition
id
resource_node_id References resource_node.id — renamed from the former ref_id_second_level column by migration Version20251205164500, which also dropped course_code, tool_id, c_id, and ref_id_high_level
search_did

sequence

Sequences for course/session access

Field Definition
id
title
graph
created_at
updated_at

sequence_condition

Conditions for sequence

Field Definition
id
description
mat_op
param
act_true
act_false

sequence_formula

Formula for sequence

Field Definition
id
sequence_method_id References sequence_method.id (SequenceFormula::$method)
sequence_variable_id References sequence_variable.id (SequenceFormula::$variable)

sequence_method

Method for sequence

Field Definition
id
description
formula
assign
met_type
act_false

sequence_resource

Method for resource

Field Definition
id
sequence_id References sequence.id (SequenceResource::$sequence)
type
resource_id References course.id or session.id depending on type (1=SequenceResource::COURSE_TYPE, 2=SequenceResource::SESSION_TYPE)

sequence_row_entity

...

Field Definition
id
sequence_type_entity_id References sequence_type_entity.id (SequenceRowEntity::$type)
c_id See "Common fields"
session_id See "Common fields"
row_id ID of the row referenced in the table named by sequence_type_entity.ent_table — polymorphic, not a fixed FK (SequenceRowEntity::$rowId)
title

sequence_rule

Rules for sequence

Field Definition
id
description

sequence_rule_condition

...

Field Definition
id
sequence_rule_id References sequence_rule.id (SequenceRuleCondition::$rule)
sequence_condition_id References sequence_condition.id (SequenceRuleCondition::$condition)

sequence_rule_method

...

Field Definition
id
sequence_rule_id References sequence_rule.id (SequenceRuleMethod::$rule)
sequence_method_id References sequence_method.id (SequenceRuleMethod::$method)
method_order

sequence_type_entity

...

Field Definition
id
title
description
ent_table

sequence_valid

...

Field Definition
id
sequence_variable_id References sequence_variable.id (SequenceValid::$variable)
sequence_condition_id References sequence_condition.id (SequenceValid::$condition)

sequence_value

...

Field Definition
id
sequence_row_entity_id References sequence_row_entity.id (SequenceValue::$entity)
user_id See "Common fields"
advance
complete_items
total_items
success
success_date
available
available_start_date
available_end_date

sequence_variable

...

Field Definition
id
title
description
default_val

session

Course sessions definitions

Field Definition
id Unique identifier
promotion_id References promotion.id (Session::$promotion)
session_category_id References session_category.id (Session::$category)
image_id References asset.id (Session::$image), the illustration image for the session (was extra field 'image' in 1.11)
title
description
show_description
duration
nbr_courses
nbr_users
nbr_classes
visibility
display_start_date
display_end_date
access_start_date
access_end_date
coach_access_start_date
coach_access_end_date
position Display order used to sort the sessions list (sorted ascending on this column)
status Session status: Session::STATUS_UNKNOWN (0), STATUS_PLANNED (1), STATUS_PROGRESS (2), STATUS_FINISHED (3), STATUS_CANCELLED (4)
send_subscription_notification
parent_id References session.id (self-reference, Session::$parentId); stored as a plain scalar column, not a Doctrine association. The session this one was automatically duplicated from by the app:session-repetition command
days_to_reinscription Number of days, counted from a session's access_end_date, within which the app:session-repetition command may generate the next repeated session (see days_to_new_repetition)
last_repetition Whether this session is the last one in its repetition chain (no further repeated sessions will be generated from it)
days_to_new_repetition Number of days before access_end_date at which the app:session-repetition command considers this session ready to be duplicated into a new one
notify_boss Whether to notify the user's boss/superior (ROLE_STUDENT_BOSS) about this session
validity_in_days Number of days after a user validates all of the session's gradebooks before the app:reinscription-check command automatically re-enrolls them into the next valid repeated session

session_category

Categories of sessions

Field Definition
id
access_url_id See "Common fields"
title
date_start
date_end

session_rel_course

Relationship between sessions and courses (which courses are contained in which sessions)

Field Definition
id
session_id See "Common fields"
c_id See "Common fields"
position
nbr_users
room_id References room.id (SessionRelCourse::$room), the physical/virtual room assigned to this course within the session

session_rel_course_rel_user

Subscription of users to a course in a session

Field Definition
id
user_id See "Common fields"
session_id See "Common fields"
c_id See "Common fields"
status
visibility
legal_agreement
progress User's progress (0-100) in the course, within this session

session_rel_user

Subscription of users in a session. This also contains (if this is the case) information about where the user has been moved to (to another session) if that was the case.

Field Definition
id
session_id See "Common fields"
user_id See "Common fields"
relation_type
duration
moved_to
moved_status
moved_at
registered_at
collapsed Whether this session subscription is shown collapsed in the user's session list UI
new_subscription_session_id Plain scalar reference to session.id (SessionRelUser::$newSubscriptionSessionId), set by the app:reinscription-check command to the new session the user was automatically re-enrolled into once they validated all gradebooks of this session; distinct from moved_to, which records a manual move between sessions
access_start_date
access_end_date

settings

Platform settings, one row per (variable, subkey, access_url) combination. This table holds the same data and columns previously documented as settings_current: a migration (PriorityMigrationHelper::renameSettingsTableUp(), src/CoreBundle/Migrations/Schema/V200/PriorityMigrationHelper.php) renames settings_current to settings because the SettingsCurrent entity now maps to the settings table name — it is not a new parallel system, just the current name of the same table. See SettingsCurrent (src/CoreBundle/Entity/SettingsCurrent.php).

Field Definition
id Unique identifier
access_url References access_url.id (SettingsCurrent::$url)
value_template_id References settings_value_template.id (SettingsCurrent::$valueTemplate); links the setting to a reusable predefined/example value set for its input widget
variable
subkey
type
category
selected_value
title
comment
scope
subkeytext
access_url_changeable
access_url_locked

settings_options

Platform settings' possible option

Field Definition
id
variable
value
display_text

settings_value_template

Reusable predefined value templates for settings rows whose value is a JSON structure (menus, extra-field lists, driver lists, etc.), keyed by variable (matching the setting's own variable name). json_example stores the JSON example/skeleton used to seed or validate the setting's value, surfaced by SettingsController::getTemplateExample() (src/CoreBundle/Controller/Admin/SettingsController.php) and populated per-variable by fixtures/migrations (SettingsValueTemplateFixtures). See SettingsValueTemplate (src/CoreBundle/Entity/SettingsValueTemplate.php).

Field Definition
id Unique identifier
variable Name of the setting this template applies to
description
json_example JSON example/skeleton for the setting's value
created_at
updated_at

skill

Skills

Field Definition
id
profile_id References skill_level_profile.id, not skill_profile (Skill::$levelProfile)
asset_id References asset.id (Skill::$asset)
title
short_code
description
access_url_id See "Common fields"
icon
criteria
status
updated_at

skill_level

Possible levels for a skill

Field Definition
id
profile_id References skill_level_profile.id (Level::$profile)
title
position
short_title

skill_level_profile

Groups the ordered Level rows (skill_level table) that make up one set of achievement levels for skills. See SkillLevelProfile (src/CoreBundle/Entity/SkillLevelProfile.php). Despite the name collision, this is a distinct concept from skill_profile: it is what skill.profile_id and skill_level.profile_id actually reference (via Skill::$levelProfile and Level::$profile), not skill_profile.

Field Definition
id Unique identifier
title

skill_profile

Groups of skills levels (level profiles)

Field Definition
id
title
description

skill_rel_course

Attaches a skill to a course (and its session) as a training objective. See SkillRelCourse (src/CoreBundle/Entity/SkillRelCourse.php).

Field Definition
id Unique identifier
skill_id References skill.id (SkillRelCourse::$skill)
c_id See "Common fields"
session_id See "Common fields"
created_at
updated_at

skill_rel_gradebook

Linking betweek gradebooks (gradebook_category)

Field Definition
id
gradebook_id References gradebook_category.id. Used by SkillRelGradebook::$gradeBookCategory.
skill_id Reference to skill.id
type

skill_rel_item

Generalizes what a skill can be attached to and obtained through — a course, exercise, learning path, student publication, etc. (any ITEM_TYPE_* constant from api.lib.php) — unlike skill_rel_course, which is course-specific. See SkillRelItem (src/CoreBundle/Entity/SkillRelItem.php).

Field Definition
id Unique identifier
skill_id References skill.id (SkillRelItem::$skill)
item_type One of the ITEM_TYPE_* constants in api.lib.php (exercise, learning path, student publication, etc.)
item_id iid of the item referenced by item_type — polymorphic, not a fixed FK
obtain_conditions Free text describing what must be achieved (view, finish, score above X, finish all children skills, etc.)
requires_validation 1 if a teacher must validate the achievement before it is granted
is_real 0 if this is only a children/prerequisite skill used to obtain a higher-level skill, and should never appear directly in a student's portfolio
c_id See "Common fields"
session_id See "Common fields"
created_by References user.id
updated_by References user.id
created_at
updated_at

skill_rel_item_rel_user

Records that a user has achieved a skill through a specific skill_rel_item. See SkillRelItemRelUser (src/CoreBundle/Entity/SkillRelItemRelUser.php).

Field Definition
id Unique identifier
skill_rel_item_id References skill_rel_item.id (SkillRelItemRelUser::$skillRelItem)
user_id See "Common fields"
result_id ID of the result record achieved through the item (e.g. track_e_exercises.exe_id for an exercise) — polymorphic, depends on the related skill_rel_item's item_type
created_by References user.id
updated_by References user.id
created_at
updated_at

skill_rel_profile

Linking of skill with skill_profile

Field Definition
id
skill_id Reference to skill.id
profile_id References skill_profile.id (SkillRelProfile::$profile)

skill_rel_skill

Hierarchy of skills between themselves

Field Definition
id
skill_id Reference to skill.id
parent_id References skill.id (self-reference within the skill hierarchy), the parent skill (SkillRelSkill::$parent)
relation_type
level

skill_rel_user

When a user gets a skill, this table registers it

Field Definition
id
user_id See "Common fields"
skill_id Reference to skill.id
course_id See "Common fields" (course.id)
session_id See "Common fields"
acquired_level
acquired_skill_at
validation_status
argumentation
argumentation_author_id References user.id

skill_rel_user_comment

Users having obtained skills can get feedback from other users. They are stored here.

Field Definition
id
skill_rel_user_id References skill_rel_user.id.
feedback_giver_id References user.id. Represents the person giving feedback.
feedback_text
feedback_value
feedback_datetime

social_post

A post on a user's social-network wall (distinct from message, which is direct messaging): wall posts, comments on a wall post, and group-wall messages. See SocialPost (src/CoreBundle/Entity/SocialPost.php).

Field Definition
id Unique identifier
sender_id References user.id, the author of the post (SocialPost::$sender)
user_receiver_id References user.id, the user whose wall the post was made on, if any (SocialPost::$userReceiver)
group_receiver_id References usergroup.id, the group whose wall the post was made on, if any (SocialPost::$groupReceiver)
parent_id References social_post.id, the parent post this one is a comment on, if any (SocialPost::$parent)
subject
content
type
status
send_date
updated_at

social_post_attachments

File attachments uploaded to a social_post. See SocialPostAttachment (src/CoreBundle/Entity/SocialPostAttachment.php).

Field Definition
id Unique identifier
resource_node_id A 1 to 1 reference to resource_node
social_post_id References social_post.id (SocialPostAttachment::$socialPost)
path
filename
size
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

social_post_feedback

Likes/dislikes given by users to a social_post, similar in role to message_likes for the message table. See SocialPostFeedback (src/CoreBundle/Entity/SocialPostFeedback.php).

Field Definition
id Unique identifier
social_post_id References social_post.id (SocialPostFeedback::$socialPost)
user_id See "Common fields"
liked
disliked
updated_at

sys_announcement

Global announcements definitions

Field Definition
id
access_url_id See "Common fields"
career_id References career.id (SysAnnouncement::$career), restricts the announcement to a specific career, if set
promotion_id References promotion.id (SysAnnouncement::$promotion), restricts the announcement to a specific promotion, if set
date_start
date_end
title
content
lang
roles Array of role strings (e.g. ROLE_USER, ROLE_TEACHER, ROLE_ADMIN) the announcement is targeted to; replaces the former visible_teacher/visible_student/visible_guest boolean flags

system_template

Global document templates

Field Definition
id
image_id References asset.id, the illustration image for this template (SystemTemplate::$image)
title
comment
content
language Language code this template is restricted to, used to filter templates when the language.template_activate_language_filter setting is enabled

tag

Tags can be assigned to extra fields.

Field Definition
id
tag
field_id References extra_field.id.
count

templates

...

Field Definition
id
c_id References course.id (Templates::$course)
user_id See "Common fields"
image_id References asset.id, the illustration image for this template (Templates::$image)
title
description
ref_doc

third_party

Registry of external third-party organizations that Chamilo exchanges personal data with, added for GDPR compliance. See ThirdParty (src/CoreBundle/Entity/ThirdParty.php) and its admin screen ThirdPartyManager.vue.

Field Definition
id Unique identifier
title
description
address
website
data_exchange_party 1 if this third party can be selected as the recipient of a third_party_data_exchange
recruiter 1 if this third party is a recruiter/recruitment agency

third_party_data_exchange

One record of personal data sent to a third_party, kept for GDPR accountability. See ThirdPartyDataExchange (src/CoreBundle/Entity/ThirdPartyDataExchange.php).

Field Definition
id Unique identifier
third_party_id References third_party.id (ThirdPartyDataExchange::$thirdParty)
sent_at
description
all_users 1 if the data of all platform users was sent, as opposed to a specific selection

third_party_data_exchange_user

Pivot recording which specific users' data was included in a given third_party_data_exchange (used when that exchange's all_users is 0). See ThirdPartyDataExchangeUser (src/CoreBundle/Entity/ThirdPartyDataExchangeUser.php).

Field Definition
id Unique identifier
third_party_data_exchange_id References third_party_data_exchange.id (ThirdPartyDataExchangeUser::$dataExchange)
user_id See "Common fields"

ticket_assigned_log

...

Field Definition
id
ticket_id References ticket_ticket.id
user_id See "Common fields"
sys_insert_user_id See "Common fields"
assigned_date

ticket_category

...

Field Definition
id
project_id References ticket_project.id
title
description
total_tickets
course_required
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

ticket_category_rel_user

...

Field Definition
id
category_id References ticket_category.id
user_id See "Common fields"

ticket_message

...

Field Definition
id
ticket_id References ticket_ticket.id
subject
message
status
ip_address
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

ticket_message_attachments

...

Field Definition
id
resource_node_id A 1 to 1 reference to resource_node
ticket_id References ticket_ticket.id
message_id References ticket_message.id
path
filename
size
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

ticket_priority

...

Field Definition
id
access_url_id See "Common fields"
title
code
description
color
urgency
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

ticket_project

...

Field Definition
id
access_url_id See "Common fields"
title
description
email
other_area
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime

ticket_rel_user

Links a ticket_ticket to an additional user (beyond the reporter/assignee) with a flag on whether that user should be notified of ticket updates. See TicketRelUser (src/CoreBundle/Entity/TicketRelUser.php).

Field Definition
user_id See "Common fields"
ticket_id References ticket_ticket.id
notify

ticket_status

...

Field Definition
id
access_url_id See "Common fields"
code
title
description

ticket_ticket

...

Field Definition
id
project_id References ticket_project.id
category_id References ticket_category.id
priority_id References ticket_priority.id
course_id See "Common fields" (course.id)
session_id See "Common fields"
assigned_last_user References user.id
status_id References ticket_status.id
access_url_id See "Common fields"
code
subject
message
personal_email
total_messages
keyword
source
start_date
end_date
sys_insert_user_id See "Common fields"
sys_insert_datetime
sys_lastedit_user_id See "Common fields"
sys_lastedit_datetime
exercise_id References c_quiz.iid
lp_id References c_lp.iid

tool

Platform-wide catalog of tools (e.g. course tools, admin tools), one row per tool title. It is the entity-backed counterpart to the legacy per-course c_tool table: tool is the global registry referenced by resource_type.tool_id, while c_tool remains the per-course row controlling a tool's visibility/order on a given course's homepage. Populated/kept in sync by ToolChain (src/CoreBundle/Tool/ToolChain.php), which registers a Tool row (and its ResourceTypes) for every tool known to the application. See Tool (src/CoreBundle/Entity/Tool.php).

Field Definition
id Unique identifier
title

tool_resource_right

Intended to hold default/global resource-right templates per tool and role (a role + access mask pair, using the same reader/editor masks as resource_right/ResourceNodeVoter). ToolChain::setToolPermissions() (src/CoreBundle/Tool/ToolChain.php) builds ToolResourceRight instances (teacher editor mask, student reader mask) when a course tool is first registered, but the calls that would attach them to the Tool entity and persist them are currently commented out, and Tool has no live collection property for this relation — so the table exists but is not currently populated by that code path. See ToolResourceRight (src/CoreBundle/Entity/ToolResourceRight.php).

Field Definition
id Unique identifier
tool_id References tool.id (ToolResourceRight::$tool)
role
mask Bitmask of granted rights (see ResourceNodeVoter::getReaderMask() / getEditorMask())

track_e_access

Log of all accesses to courses, tools and sessions in the platform. It does not track all actions, though. Only "entering" each course and tool

Field Definition
access_id Unique identifier
access_user_id See "Common fields"
access_date
c_id See "Common fields"
access_tool NULL or any English tool name (user, learnpath, quiz, chat, document, forum, link, etc)
session_id See "Common fields"
user_ip IP address

track_e_access_complete

A more detailed, generalized version of track_e_access: it logs any tool action (not only tool entry) together with the browser, real IP, request URL and "logged in as" context. Populated by Event::registerLog() in public/main/inc/lib/events.lib.php. See TrackEAccessComplete (src/CoreBundle/Entity/TrackEAccessComplete.php).

Field Definition
id Unique identifier
user_id See "Common fields"
date_reg
tool Tool name (see access_tool in track_e_access)
tool_id ID of the relevant item within tool — polymorphic, depends on tool
tool_id_detail Secondary/detail ID within tool — polymorphic, depends on tool
action Action performed
action_details Additional detail about action
current_id ID chaining consecutive log entries recorded within the same PHP session (see Session::read('last_id') in events.lib.php)
ip_user IP address
user_agent Browser user agent string
session_id See "Common fields"
c_id See "Common fields"
ch_sid PHP session ID at the time of the action (distinct from session_id, the Chamilo session)
login_as 1 if the action was performed while an admin/teacher was "logged in as" this user
info Free-text additional information
url Request URI at the time of the action

track_e_attempt

Log of all attempts (answers to questions) in quizzes (c_quiz). These are sub-elements of track_e_exercises.

Field Definition
id Unique identifier of the attempt (of answer to a question)
exe_id References track_e_exercises.exe_id
user_id See "Common fields"
question_id References c_quiz_question.iid
answer
teacher_comment
marks Score attributed
position Internal helper to get in which order the questions were answered, so as to present them faster and avoid issues with random question orders.
tms
filename
seconds_spent The number of seconds spent on this answer

track_e_attempt_coeff

...

Field Definition
id
attempt_id References track_e_attempt.id
marks_coeff

track_e_attempt_qualify

Records a teacher's manual re-qualification (rescoring) of one answer within a track_e_attempt/track_e_exercises attempt. See TrackEAttemptQualify (src/CoreBundle/Entity/TrackEAttemptQualify.php), consumed by ExerciseRuntimeCorrectionProcessor.

Field Definition
id Unique identifier
exe_id References track_e_exercises.exe_id (TrackEAttemptQualify::$trackExercise)
question_id References c_quiz_question.iid
marks New score attributed to the answer
insert_date
author References user.id; the teacher who re-qualified the answer
teacher_comment
session_id See "Common fields"
answer

track_e_course_access

Logs all login/logout actions to courses. This can be confusing when users open tabs to different courses at the same time.

Field Definition
course_access_id unique ID
c_id See "Common fields"
user_id See "Common fields"
login_course_date datetime field for when the user logged in
logout_course_date datetime field for when the user logged out
counter number of actions the user took in this course between login and logout
session_id See "Common fields"
user_ip IP address (v4 or v6) of the user when logged in

track_e_default

Log of important actions in the system. This can be considered an audit table, as it records actions like user/course/session creations/deletions

Field Definition
default_id Unique identifier of this log row (auto-increment primary key), not a foreign key
default_user_id See "Common fields"
c_id See "Common fields"
default_date
default_event_type
default_value_type
default_value
session_id See "Common fields"

track_e_downloads

Log of all documents downloads (only logs documents that exist in the c_document table)

Field Definition
down_id Unique identifier
resource_link_id References resource_link.id. Identifies the resource-system link (course/session/group context) associated with the downloaded document; replaces the former c_id/down_session_id columns.
down_user_id See "Common fields"
down_date
down_doc_path

track_e_exercise_confirmation

Anti-data-loss check recorded when finishing a quiz attempt, only when the exercise.quiz_confirm_saved_answers platform setting is enabled: compares how many questions were presented against how many distinct answers were actually persisted in track_e_attempt, and records whether the user explicitly confirmed the saved-answers count before submitting. See TrackEExerciseConfirmation (src/CoreBundle/Entity/TrackEExerciseConfirmation.php), populated by ExerciseRuntimeFinishProcessor::recordSavedAnswersConfirmation().

Field Definition
id Unique identifier
user_id See "Common fields"
course_id See "Common fields"
attempt_id References track_e_exercises.exe_id
quiz_id References c_quiz.iid
session_id See "Common fields"
confirmed 1 if the user explicitly confirmed the saved-answers count before submitting
questions_count Number of questions presented in the attempt
saved_answers_count Number of distinct questions actually found answered in track_e_attempt
created_at
updated_at

track_e_exercises

Log of all quiz (c_quiz) attempts by a user. For the detail of each answer, check track_e_attempt

Field Definition
exe_id Unique identifier
exe_user_id See "Common fields"
c_id See "Common fields"
session_id See "Common fields"
exe_exo_id References c_quiz.iid
exe_date Datetime (UTC) at which the attempt started
score Score obtained by the user
max_score Max score based on the configuration of questions
user_ip IP address
status Current status of the exercise attempt. Can be 'incomplete' or '' if completed.
data_tracking The sequence (separated by semi-columns) of questions to be answered in this attempt.
start_date Datetime (UTC) at which the user entered the intro for the exercise.
steps_counter
orig_lp_id References c_lp.iid if this attempt was held inside a learning path
orig_lp_item_id References c_lp_item.iid if this attempt was held inside a learning path. In this case, the iid is the item that links to c_quiz.iid.
exe_duration Number of seconds the whole exercise attempt lasted
expired_time_control A datetime (UTC) of the time when the exercise is over because the total time allowed has expired.
orig_lp_item_view_id References c_lp_item_view.iid if this attempt was held inside a learning path
questions_to_check If the user has marked some questions for review, this field will contain a semicolumn-separated list of c_quiz_question. iid marked for review
blocked_categories Comma-separated list of c_quiz_question_category.iid values blocked from random selection in this attempt (category-based question exclusion for adaptive quizzes)

track_e_hotpotatoes

Log of scores at quizzes of type HotPotatoes

Field Definition
id
title
exe_user_id See "Common fields"
exe_date
c_id See "Common fields"
score Score obtained
max_score Maximum score achievable

track_e_hotspot

Log of additional data regarding questions of HotSpot type (questions on images).

Field Definition
hotspot_id unique id
c_id See "Common fields"
hotspot_user_id User ID
hotspot_exe_id References c_quiz.iid(?)
hotspot_question_id References c_quiz_question.iid
hotspot_answer_id References c_quiz_answer.iid
hotspot_correct
hotspot_coordinate

track_e_lastaccess

Log of accesses to tools in courses

Field Definition
access_id unique ID
access_user_id See "Common fields"
access_date datetime (in UTC)
c_id See "Common fields"
access_tool name of the tool
session_id See "Common fields"

track_e_links

Log of accesses to links in the course's links tool (c_link)

Field Definition
links_id unique id
links_user_id See "Common fields"
links_date datetime
c_id See "Common fields"
links_link_id iid from c_link (FK)
session_id See "Common fields"

track_e_login

Log all login and logout actions, with no differentiation of what the user did (see track_e_lastaccess for that)

Field Definition
login_id unique ID
login_user_id See "Common fields"
login_date datetime
user_ip IP address (v4 or v6)
logout_date datetime

track_e_login_record

Per-attempt supplement to track_e_login: records every login attempt, successful or not, whereas track_e_login only records completed login/logout sessions. Used by LoginFailureSubscriber and LoginSuccessHandler to log both failed and successful authentication attempts. See TrackELoginRecord (src/CoreBundle/Entity/TrackELoginRecord.php).

Field Definition
id Unique identifier
username Username as submitted at login (not a user_id FK, so failed logins with unknown usernames can still be logged)
login_date
user_ip IP address (v4 or v6)
success 1 if the login attempt succeeded

track_e_online

Log online presence of users. Used to tell if the user is online by applying a difference to the current datetime

Field Definition
login_id unique ID
login_user_id See "Common fields"
login_date datetime
user_ip IP address (v4 or v6)
c_id See "Common fields"
session_id See "Common fields"
access_url_id See "Common fields"

track_e_uploads

Log uploads

Field Definition
upload_id unique ID
upload_user_id See "Common fields"
upload_date datetime
c_id See "Common fields"
upload_work_id References c_student_publication.iid
session_id See "Common fields"

user

Users of the system

Field Definition
id Unique ID
resource_node_id A 1 to 1 reference to resource_node
username The username used to login
api_token Personal API access token for this user, used to authenticate API requests without a session
firstname User's firstname
lastname User's lastname
website URL of the user's personal website (profile field)
biography Free-text biography entered by the user (profile field)
locale Interface language locale for this user (replaces the former language column)
password Password (hashed/encrypted following the method defined by $_configuration['password_encryption'] in app/config/configuration.php
username_canonical a cleaned version of the username
timezone Timezone used to display dates/times to this user
email_canonical a cleaned version of the email
email the user e-mail
locked 1 if the user account has been locked from the system
expired 1 if the user account has expired
credentials_expired (not yet used) 1 if the user's credentials have expired
credentials_expire_at (not yet used) expiry datetime for the credentials
date_of_birth User's date of birth (profile field)
expires_at (not used yet) datetime at which the user account expires - see expiration_date field below
phone Phone number
address (not yet used) Address
salt Value used to encrypt the password if the corresponding encryption method requires it
gender User's gender
last_login The datetime of the last login for this user
confirmation_token String used for the password change confirmation
password_requested_at Datetime at which the password regen was requested
roles an internal array with some information. Not really used at this point.
profile_completed 1 if the profile has been completed
status User default role. 1 if the user is a teacher, 5 if the user is a student. Check main/inc/lib/api.lib.php for more roles
official_code Optional code
picture_uri URL of the user picture
creator_id The user ID of the person who created this user
competences Part of portfolio fields
diplomas Part of portfolio fields
openarea Part of portfolio fields
teach Part of portfolio fields
productions Part of portfolio fields
expiration_date Expiration datetime
active 1 if the user account is active, 0 otherwise. An inactive user will not be able to connect to the platform.
openid A token if using early versions of the OpenID implementation in Chamilo
theme Default theme
hr_dept_id deprecated
uuid Unique UUID identifier generated for this user (used internally, distinct from the id primary key)
mfa_enabled 1 if two-factor authentication (MFA) is enabled for this user
mfa_service Name of the MFA service/method used by this user
mfa_secret Secret key used to validate this user's MFA codes
mfa_backup_codes Backup codes the user can use to log in if they lose access to their MFA device
mfa_last_used Datetime this user last authenticated using MFA
password_updated_at Datetime the password was last changed
created_at The datetime of creation of the user account
updated_at The datetime of last update of the user account

user_api_key

API keys for users (for external systems)

Field Definition
id
user_id See "Common fields"
api_key
api_service
api_end_point
created_date
validity_start_date
validity_end_date
description

user_auth_source

Records which authentication backend a user is allowed to authenticate through on a given URL (multi-URL setup). Checked by UserAuthSourceListener (src/CoreBundle/EventListener/UserAuthSourceListener.php) on every login attempt to reject a badge/method (LDAP, OAuth2, platform password, etc.) with no matching row here. See UserAuthSource (src/CoreBundle/Entity/UserAuthSource.php).

Field Definition
id Unique identifier
url_id See "Common fields"
user_id See "Common fields"
authentication One of UserAuthSource's PLATFORM/CAS/LDAP/AZURE/FACEBOOK/KEYCLOAK/OAUTH2 constants

user_career

A user's assigned career path, linking user to career (see "career" above). See UserCareer (src/CoreBundle/Entity/UserCareer.php).

Field Definition
id Unique identifier
user_id See "Common fields"
career_id References career.id (UserCareer::$career)
extra_data
created_at
updated_at

user_course_category

Courses categories defined by users in "sort my courses" feature

Field Definition
id
user_id See "Common fields"
title
sort
collapsed 1 if this course category is collapsed in the course list display

user_friend_relation_type

Dictionary table for the types of social relation types

Field Definition
id
title

user_rel_course_vote

Link between users and courses to register user's vote on the course

Field Definition
id unique ID
c_id See "Common fields"
user_id See "Common fields"
session_id See "Common fields"
url_id See "Common fields"
vote int value (usually 0-5)

user_rel_tag

link between user and tag

Field Definition
id
user_id See "Common fields"
tag_id References tag.id (UserRelTag::$tag)

user_rel_user

links between users

Field Definition
id
user_id See "Common fields"
friend_user_id See "Common fields"
relation_type
created_at
updated_at

usergroup

User groups (global groups) (see classes and social groups in the administration)

Field Definition
id
resource_node_id A 1 to 1 reference to resource_node
title
description
group_type
picture Path to an image that represents the group.
url A URL linked to this group (external website or so)
visibility
author_id References user.id, the creator of this usergroup (Usergroup::$authorId)
allow_members_leave_group
created_at
updated_at

usergroup_rel_course

Link between usergroup and course

Field Definition
id
usergroup_id References usergroup.id
course_id See "Common fields"

usergroup_rel_question

Link between usergroup and c_quiz_question

Field Definition
id
question_id References c_quiz_question.iid (UsergroupRelQuestion::$question)
usergroup_id References usergroup.id
coefficient

usergroup_rel_session

Link between usergroup and session

Field Definition
id
usergroup_id References usergroup.id
session_id See "Common fields"

usergroup_rel_user

Link between usergroup and user

Field Definition
id
user_id See "Common fields"
usergroup_id References usergroup.id
relation_type

usergroup_rel_usergroup

Link between usergroup and itself

Field Definition
id
group_id References usergroup.id
subgroup_id References usergroup.id
relation_type

validation_token

Generic one-time token table used to validate an action on a given resource without requiring a logged-in session — e.g. remember-me re-authentication. Types are defined in ValidationTokenHelper (src/CoreBundle/Helpers/ValidationTokenHelper.php): TYPE_TICKET (1), TYPE_USER (2), TYPE_REMEMBER_ME (3). See ValidationToken (src/CoreBundle/Entity/ValidationToken.php), used by RememberMeSubscriber and SecurityController.

Field Definition
id Unique identifier
type One of ValidationTokenHelper's TYPE_TICKET/TYPE_USER/TYPE_REMEMBER_ME constants
resource_id ID of the resource being validated — polymorphic, depends on type (e.g. user.id for TYPE_REMEMBER_ME)
hash Random (or supplied) SHA-256 hex token string
created_at

version

Infrastructure bookkeeping table for Doctrine Migrations, not application data — tracks which migration versions have been executed. Configured in config/packages/doctrine_migrations.yaml (storage.table_storage).

Field Definition
version Unique identifier; the migration class's fully-qualified name
executed_at
execution_time Time (ms) the migration took to run

xapi_activity_profile

Stores the xAPI Activity Profile API's arbitrary JSON documents, keyed by activity and profile ID (used by the LRS to persist per-activity metadata such as shared bookmarks or configuration, independent of any one agent). Mapped by the XApiActivityProfile entity (src/CoreBundle/Entity/XApiActivityProfile.php).

Field Definition
id Unique identifier
profile_id The xAPI Activity Profile document identifier (profileId query parameter)
activity_id The xAPI Activity IRI the profile document is attached to
document_data The stored profile document, as JSON

xapi_activity_state

Stores the xAPI State API's arbitrary JSON documents, keyed by activity, agent, and state ID (e.g. suspend-data/bookmarking use cases, analogous to SCORM's suspend_data). Mapped by the XApiActivityState entity (src/CoreBundle/Entity/XApiActivityState.php); read/written via ActivitiesStateController (public/plugin/XApi/src/Lrs/ActivitiesStateController.php) and cleaned up on tool deletion in public/plugin/XApi/tool_delete.php.

Field Definition
id Unique identifier
state_id The xAPI State document identifier (stateId query parameter)
activity_id The xAPI Activity IRI the state document is attached to
agent The xAPI Agent (actor) the state document belongs to, as JSON
document_data The stored state document, as JSON

xapi_actor

The xAPI "who" of a statement (an Agent or Group), as defined by the vendored php-xapi ORM repository (Actor.orm.xml, entity XApi\Repository\Doctrine\Mapping\Actor). Not currently referenced by any FK from the columns extracted for this batch; the statement's actor is stored via xapi_object instead (see below).

Field Definition
identifier Unique identifier
type Actor type (Agent or Group)
mbox Agent's mailbox URI (mailto: email identifier)
mbox_sha1_sum SHA1 hash of the agent's mailbox, used as an alternate identifier
open_id Agent's OpenID identifier
account_name Agent's account name, part of an inverse functional identifier
account_home_page Agent's account home page, part of an inverse functional identifier
name Agent or group's display name

xapi_attachment

Binary/file attachments referenced by an xAPI statement (e.g. certificates, essays). Mapped by the XApiAttachment entity (src/CoreBundle/Entity/XApiAttachment.php) and the vendored php-xapi ORM repository (Attachment.orm.xml).

Field Definition
identifier Unique identifier
statement_id References xapi_statement.id; the statement this attachment is attached to
usage_type IRI describing the type/purpose of the attachment
content_type The attachment's MIME content type
length The attachment's size, in bytes
sha2 SHA-2 hash of the attachment content, used to verify integrity
display Human-readable display name of the attachment, as JSON (language map)
has_description 1 if a description is present
description Human-readable description of the attachment, as JSON (language map)
file_url URL where the attachment content can be retrieved, if not stored inline
content The raw attachment content, if stored inline

xapi_cmi5_item

The cmi5 course structure tree (course/block/AU items) parsed from an imported cmi5 package, one row per node. Nested-set tree managed by Gedmo (lft/lvl/rgt/root_id/parent_id). Mapped by the XApiCmi5Item entity (src/CoreBundle/Entity/XApiCmi5Item.php); parsed from the package manifest by public/plugin/XApi/src/Parser/Cmi5Parser.php and torn down (including breaking the tree self-references) in public/plugin/XApi/tool_delete.php.

Field Definition
id Unique identifier
root_id References xapi_cmi5_item.id; the root node of this item's tree (Gedmo nested-set)
parent_id References xapi_cmi5_item.id; the parent node of this item (Gedmo nested-set)
tool_id References xapi_tool_launch.id; the xAPI/cmi5 tool launch this item's tree belongs to
identifier The cmi5 manifest identifier of the item (block or AU)
type Item type, e.g. course, block, or au (Assignable Unit)
title Item title, as JSON (language map)
description Item description, as JSON (language map)
url Launch URL of the AU, relative to the package
activity_type xAPI Activity type IRI for the item
launch_method cmi5 launch method (AnyWindow or OwnWindow)
move_on cmi5 "moveOn" criterion controlling when the AU is considered complete
mastery_score Minimum score (0-1) required to satisfy the AU, if applicable
launch_parameters Extra query-string parameters appended to the AU launch URL
entitlement_key cmi5 entitlement key used to validate the AU launch session
status Current status of the item
lft Nested-set left value (Gedmo tree)
lvl Nested-set depth level (Gedmo tree)
rgt Nested-set right value (Gedmo tree)

xapi_context

Contextual information attached to an xAPI statement (registration, instructor, team, platform, language, related context activities, extensions). Mapped by the XApiContext entity (src/CoreBundle/Entity/XApiContext.php) and the vendored php-xapi ORM repository (Context.orm.xml).

Field Definition
identifier Unique identifier
instructor_id References xapi_object.identifier; the instructor Agent/Group for this context
team_id References xapi_object.identifier; the team Group for this context
extensions_id References xapi_extensions.identifier; arbitrary extension key/value data for this context
registration UUID of the registration (a specific instance of an actor experiencing an activity)
has_context_activities 1 if related context activities (parent/grouping/category/other) are present
revision Revision of the learning activity associated with the statement
platform Platform used to access the learning activity, when a Group actor is used
language ISO language code in which the experience being recorded occurred
statement The xAPI Statement ID this context's "statement" (StatementRef) property points back to

xapi_extensions

Arbitrary key/value extension data attached to an actor/context/result/activity, stored as JSON keyed by extension IRI. Mapped by the XApiExtensions entity (src/CoreBundle/Entity/XApiExtensions.php) and the vendored php-xapi ORM repository (Extensions.orm.xml).

Field Definition
identifier Unique identifier
extensions The extension data, as JSON (map of extension IRI to arbitrary value)

xapi_internal_log

Chamilo-specific audit log of statements processed by the LRS, denormalizing the actor/verb/object/score for reporting without needing to join the full xAPI object graph. Mapped by the XApiInternalLog entity (src/CoreBundle/Entity/XApiInternalLog.php); written by public/plugin/XApi/src/Lrs/Utils/InternalLogUtil.php.

Field Definition
id Unique identifier
user_id See "Common fields"
statement_id The xAPI Statement ID this log entry summarizes
verb The statement's verb IRI
object_id The statement object's activity IRI
activity_name Human-readable name of the activity, if available
activity_description Human-readable description of the activity
score_scaled Scaled score (-1 to 1) from the statement's result, if any
score_raw Raw score from the statement's result, if any
score_min Minimum possible score from the statement's result, if any
score_max Maximum possible score from the statement's result, if any
created_at Creation date
updated_at Last update date

xapi_lrs_auth

Basic-Auth credential pairs (key/secret) allowing external tools to push xAPI statements into this Chamilo-hosted LRS. Mapped by the XApiLrsAuth entity (src/CoreBundle/Entity/XApiLrsAuth.php); checked by public/plugin/XApi/src/Lrs/LrsRequest.php when authenticating incoming LRS requests.

Field Definition
id Unique identifier
username Basic-Auth username (key) issued to the external tool
password Basic-Auth password (secret) issued to the external tool
enabled 1 if these credentials are currently accepted
created_at Creation date
updated_at Last update date

xapi_object

The xAPI "what" of a statement: an Activity, Agent/Group, StatementRef, or SubStatement, discriminated by the type column. Also reused to store the actor/instructor/team/group Agents referenced elsewhere (context, statement actor/authority). Mapped by the XApiObject entity (src/CoreBundle/Entity/XApiObject.php) and the vendored php-xapi ORM repository (StatementObject.orm.xml, class StatementObject).

Field Definition
identifier Unique identifier
actor_id References xapi_object.identifier; the actor of a nested SubStatement
verb_id References xapi_verb.identifier; the verb of a nested SubStatement
object_id References xapi_object.identifier; the object of a nested SubStatement
activity_extensions_id References xapi_extensions.identifier; extension data for an Activity object
group_id References xapi_object.identifier; the Group this Agent is a member of
parent_context_id References xapi_context.identifier; "parent" context activity relation
grouping_context_id References xapi_context.identifier; "grouping" context activity relation
category_context_id References xapi_context.identifier; "category" context activity relation
other_context_id References xapi_context.identifier; "other" context activity relation
type Discriminator: Activity, Agent, Group, StatementRef, or SubStatement
activity_id The Activity IRI, when type is Activity
has_activity_definition 1 if an Activity definition (name/description/type) is present
has_activity_name 1 if the Activity definition includes a name
activity_name Activity's human-readable name, as JSON (language map)
has_activity_description 1 if the Activity definition includes a description
activity_description Activity's human-readable description, as JSON (language map)
activity_type Activity type IRI
activity_more_info URL to more information about the Activity
mbox Agent's mailbox URI (mailto: email identifier)
mbox_sha1_sum SHA1 hash of the agent's mailbox, used as an alternate identifier
open_id Agent's OpenID identifier
account_name Agent's account name, part of an inverse functional identifier
account_home_page Agent's account home page, part of an inverse functional identifier
name Agent or group's display name
referenced_statement_id The xAPI Statement ID referenced, when type is StatementRef

xapi_result

The result of an xAPI statement: score, success, completion, response, and duration. Mapped by the XApiResult entity (src/CoreBundle/Entity/XApiResult.php) and the vendored php-xapi ORM repository (Result.orm.xml).

Field Definition
identifier Unique identifier
extensions_id References xapi_extensions.identifier; extension data for this result
has_score 1 if a score is present
scaled Scaled score (-1 to 1)
raw Raw score
min Minimum possible raw score
max Maximum possible raw score
success 1 if the experience was completed successfully
completion 1 if the experience was completed
response Learner's response to the activity, as a string
duration ISO 8601 duration the actor spent on the activity

xapi_shared_statement

Outbox of xAPI statements queued to be forwarded to an external LRS (e.g. via the cmi5 tool launch's configured lrs_url), decoupling statement capture from delivery. Mapped by the XApiSharedStatement entity (src/CoreBundle/Entity/XApiSharedStatement.php).

Field Definition
id Unique identifier
uuid Unique identifier for the shared statement payload, used for de-duplication/tracking
statement The full xAPI statement payload, as JSON
sent 1 if the statement has already been successfully forwarded

xapi_statement

The core xAPI Statement record ("actor verb object", with optional result/context/attachments) — the immutable record of a learning experience. Mapped by the XApiStatement entity (src/CoreBundle/Entity/XApiStatement.php) and the vendored php-xapi ORM repository (Statement.orm.xml, class Statement), which is the primary read/write path used by public/plugin/XApi/src/Lrs/StatementsController.php.

Field Definition
id Unique identifier (the xAPI Statement UUID, not an auto-increment integer)
actor_id References xapi_object.identifier; the statement's actor (who)
verb_id References xapi_verb.identifier; the statement's verb (did what)
object_id References xapi_object.identifier; the statement's object (what)
result_id References xapi_result.identifier; the statement's result, if any
authority_id References xapi_object.identifier; the Agent/Group asserting the statement is true
context_id References xapi_context.identifier; the statement's context, if any
created Timestamp (Unix epoch) when the statement was created by the actor
stored Timestamp (Unix epoch) when the LRS stored the statement
has_attachments 1 if the statement has one or more attachments

xapi_tool_launch

An xAPI/cmi5 activity configured inside a course (analogous to a SCORM package), holding the launch URL and the LRS connection details to which the launched content will report statements. Mapped by the XApiToolLaunch entity (src/CoreBundle/Entity/XApiToolLaunch.php); referenced from a learning path via a c_lp_item of type TOOL_XAPI (see XApiToolLaunchRepository::wasAddedInLp() / countByCourseAndSession()), and deleted (along with its cmi5 tree and state documents) by public/plugin/XApi/tool_delete.php.

Field Definition
id Unique identifier
course_id See "Common fields"
session_id See "Common fields"
title Title of the xAPI/cmi5 activity
description Description of the xAPI/cmi5 activity
launch_url URL used to launch the external content
activity_id xAPI Activity IRI of the launched content
activity_type Activity profile of the launched content, e.g. tincan or cmi5
allow_multiple_attempts 1 if learners may launch/re-attempt the activity more than once
lrs_url Endpoint URL of the LRS statements are forwarded to
lrs_auth_username Basic-Auth username used when forwarding statements to lrs_url
lrs_auth_password Basic-Auth password used when forwarding statements to lrs_url
created_at Creation date
updated_at Last update date

xapi_verb

The xAPI "did what" of a statement (e.g. answered, completed, experienced), identified by an IRI. Mapped by the XApiVerb entity (src/CoreBundle/Entity/XApiVerb.php) and the vendored php-xapi ORM repository (Verb.orm.xml).

Field Definition
identifier Unique identifier
id The verb's IRI (e.g. http://adlnet.gov/expapi/verbs/completed)
display Human-readable display name of the verb, as JSON (language map)

Examples of mixed queries

If you wanted to know how many errors have been made in a quiz over a certain period of time, you could proceed this way:

  • query track_e_exercices.tms between two dates for the given exe_exo_id (referencing c_quiz.iid)
  • link track_e_attempt to track_e_exercices on the exe_id field
  • check how many track_e_attempt.marks are = 0 (this is not 100% reliable but will give you a good approximation)

Extensions

In some cases, you might want to generate an intermediary table with progress results from your students. We did that in a specific case (generating a table called track_x_course_progress) which might be useful to others, so here are the details:

track_x_course_progress

Field Definition
user_id Internal ID
email
firstname
lastname
course_id Internal course/training ID
lp_id Internal lesson (lp) ID
lesson_title Lesson (lp) title
progress Progress the user reached in this lesson (lp) in percentage points
first_access Datetime (YYYY-MM-DD hh:mm:ss) of the first access to the course (not the lesson)
last_view Datetime (YYYY-MM-DD hh:mm:ss) of the last access to the course (not the lesson)
seconds_in_lesson The number of seconds spent by the user in this particular lesson (lp)
update_timestamp A note of when this row was last updated

Then some indexes might be useful:

  • ALTER TABLE track_x_course_progress ADD INDEX idx_txcp_uid (user_id);
  • ALTER TABLE track_x_course_progress ADD INDEX idx_txcp_cid (course_id);
  • ALTER TABLE track_x_course_progress ADD INDEX idx_txcp_cname (course_name(100));
  • ALTER TABLE track_x_course_progress ADD INDEX idx_txcp_lpid (lp_id);

Of course, this table needs to be generated from the raw data (probably once a day to avoid overload), but that is left as an exercise for the reader.

plugin_*

All plugin tables (see plugin documentation) start with plugin_*.

However, not all plugin tables are documented below. These are created/removed on demand during the installation or uninstallation of each plugin.

plugin_buycourses_cecabank_account

Stores the single CeCaBank (Spanish bank card gateway) merchant account credentials used by the BuyCourses plugin's TPV CeCaBank payment method.

Field Definition
id Unique identifier
crypto_key CeCaBank cryptographic key used to sign requests
merchant_id CeCaBank merchant identifier
acquirer_bin Acquirer BIN code supplied by CeCaBank
terminal_id CeCaBank terminal identifier
cypher Signature/cypher algorithm used
exponent Cypher exponent parameter
supported_payment Supported payment methods code
url CeCaBank gateway endpoint URL

plugin_buycourses_commission

Single-row configuration table holding the platform's default commission percentage applied to item beneficiaries in plugin_buycourses_item_rel_beneficiary.

Field Definition
id Unique identifier
commission Default commission percentage

plugin_buycourses_coupon

Discount coupons that can be redeemed against courses, sessions, services or subscriptions sold through BuyCourses.

Field Definition
id Unique identifier
code Coupon code entered by the buyer
discount_type Discount kind: 1 percentage, 2 fixed amount (BuyCoursesPlugin::COUPON_DISCOUNT_TYPE_*)
discount_amount Discount value (percentage or fixed amount depending on discount_type)
valid_start Start of the coupon's validity period
valid_end End of the coupon's validity period
delivered Number of times the coupon has been redeemed
active 1 if the coupon can still be used (BuyCoursesPlugin::COUPON_STATUS_*)

plugin_buycourses_coupon_rel_item

Restricts a coupon to specific sellable items (courses/sessions), pairing it with the product_type/product_id combination used across BuyCourses (as in plugin_buycourses_item).

Field Definition
id Unique identifier
coupon_id References plugin_buycourses_coupon.id
product_type Product kind: 1 course, 2 session (BuyCoursesPlugin::PRODUCT_TYPE_*)
product_id References course.id or session.id depending on product_type

plugin_buycourses_coupon_rel_sale

Records which coupon was applied to a completed course/session purchase in plugin_buycourses_sale.

Field Definition
id Unique identifier
coupon_id References plugin_buycourses_coupon.id
sale_id References plugin_buycourses_sale.id

plugin_buycourses_coupon_rel_service

Restricts a coupon to specific sellable services defined in plugin_buycourses_services.

Field Definition
id Unique identifier
coupon_id References plugin_buycourses_coupon.id
service_id References plugin_buycourses_services.id

plugin_buycourses_coupon_rel_service_sale

Records which coupon was applied to a service purchase in plugin_buycourses_service_sale.

Field Definition
id Unique identifier
coupon_id References plugin_buycourses_coupon.id
service_sale_id References plugin_buycourses_service_sale.id

plugin_buycourses_coupon_rel_subscription_sale

Records which coupon was applied to a subscription purchase in plugin_buycourses_subscription_rel_sale.

Field Definition
id Unique identifier
coupon_id References plugin_buycourses_coupon.id
sale_id References plugin_buycourses_subscription_rel_sale.id

plugin_buycourses_culqi

Single-row configuration table for the Culqi (Peruvian) payment gateway credentials used by BuyCourses.

Field Definition
id Unique identifier
commerce_code Culqi commerce/merchant code
api_key Culqi API secret key
integration Environment: integration/test vs production (BuyCoursesPlugin::CULQI_INTEGRATION_TYPE / CULQI_PRODUCTION_TYPE)

plugin_buycourses_currency

Catalog of countries, their currency and whether BuyCourses is enabled to sell in that currency/country.

Field Definition
id Unique identifier
country_code ISO 3166-1 alpha-2 country code
country_name Country name
iso_code ISO 4217 currency code
status 1 if sales are enabled for this country/currency

plugin_buycourses_frozen_enrollment

Tracks course enrollments that were frozen (access suspended) because the underlying subscription/service sale lapsed, so access can later be restored without re-enrolling.

Field Definition
id Unique identifier
course_id See "Common fields"
user_id See "Common fields"
frozen_since Date/time the enrollment was frozen

plugin_buycourses_global_config

Single-row global configuration for the BuyCourses plugin: seller/invoicing identity, tax rules, VAT/geolocation settings and invoice numbering.

Field Definition
id Unique identifier
terms_and_conditions Terms and conditions text shown at checkout
global_tax_perc Default tax percentage applied to sales
tax_applies_to Scope the default tax applies to: all, courses only, sessions only, or services only (BuyCoursesPlugin::TAX_APPLIES_TO_*)
tax_name Label of the tax shown to buyers (e.g. "VAT")
seller_name Seller's legal name, printed on invoices
seller_id Seller's tax/company identification number
seller_address Seller's address, printed on invoices
seller_country Seller's country code (ISO 3166-1 alpha-2)
seller_postcode Seller's postal code
seller_vat_number Seller's VAT registration number
seller_vat_registered 1 if the seller is VAT-registered
seller_annual_eu_tbe_turnover Seller's annual EU telecoms/broadcasting/e-service turnover, used for VAT threshold rules
vat_geoip_provider GeoIP provider used to determine buyer location for VAT purposes
vat_maxmind_account_id MaxMind GeoIP2 account ID (when vat_geoip_provider is MaxMind)
vat_maxmind_license_key MaxMind GeoIP2 license key
seller_email Seller's contact email, printed on invoices
next_number_invoice Next sequential invoice number to assign
invoice_series Invoice numbering series/prefix
sale_email Email address notified on new sales
info_email_extra Extra text appended to sale/service notification emails

plugin_buycourses_invoices

One invoice record per sale, shared between course/session sales (plugin_buycourses_sale) and service sales (plugin_buycourses_service_sale), disambiguated by is_service.

Field Definition
id Unique identifier
sale_id References plugin_buycourses_sale.id if is_service is 0, otherwise plugin_buycourses_service_sale.id
is_service 1 if sale_id points to a service sale rather than a course/session sale
num_invoice Sequential invoice number within year/serie
year Invoice year
serie Invoice numbering series
date_invoice Date the invoice was issued

plugin_buycourses_item

A sellable catalog entry: a course or session offered for sale, with its price and currency. Referenced by plugin_buycourses_item_rel_beneficiary for commission split.

Field Definition
id Unique identifier
currency_id References plugin_buycourses_currency.id
product_type Product kind: 1 course, 2 session (BuyCoursesPlugin::PRODUCT_TYPE_*)
product_id References course.id or session.id depending on product_type
price Sale price
tax_perc Tax percentage applied to this item

plugin_buycourses_item_rel_beneficiary

Defines the users who receive a commission when an item (plugin_buycourses_item) is sold, and their commission percentage.

Field Definition
id Unique identifier
item_id References plugin_buycourses_item.id
user_id See "Common fields"
commissions Commission percentage granted to this beneficiary

plugin_buycourses_paypal_account

Single-row configuration table for the platform's PayPal merchant credentials used by BuyCourses.

Field Definition
id Unique identifier
username PayPal API username
password PayPal API password
signature PayPal API signature
sandbox 1 if using the PayPal sandbox (test) environment

plugin_buycourses_paypal_payouts

Tracks commission payouts made to beneficiaries (via PayPal) for a given sale.

Field Definition
id Unique identifier
date Date the payout record was created
payout_date Date the payout was actually executed
sale_id References plugin_buycourses_sale.id
user_id See "Common fields"
commission Commission amount paid out
status Payout status: pending, completed or canceled (BuyCoursesPlugin::PAYOUT_STATUS_*)

plugin_buycourses_sale

A completed or pending purchase of a course or session, including buyer, pricing, tax and VAT/invoicing details for the transaction.

Field Definition
id Unique identifier
currency_id References plugin_buycourses_currency.id
reference Unique transaction reference shown to the buyer and gateway
date Date/time of the sale
user_id See "Common fields"
product_type Product kind: 1 course, 2 session (BuyCoursesPlugin::PRODUCT_TYPE_*)
product_name Snapshot of the course/session name at time of sale
product_id References course.id or session.id depending on product_type
price Final price charged (tax included)
price_without_tax Price before tax
tax_perc Tax percentage applied
tax_amount Tax amount charged
status Sale status: canceled, pending or completed (BuyCoursesPlugin::SALE_STATUS_*)
payment_type Payment gateway used (BuyCoursesPlugin::PAYMENT_TYPE_*: PayPal, transfer, Culqi, TPV Redsys, Stripe, TPV CeCaBank)
invoice 1 if an invoice has been generated for this sale
price_without_discount Price before any coupon discount
discount_amount Amount deducted by an applied coupon
buyer_country Buyer's declared country (ISO 3166-1 alpha-2)
buyer_postcode Buyer's postal code
buyer_ip Buyer's IP address at time of purchase
buyer_ip_country Country resolved from the buyer's IP via GeoIP
buyer_vat_number Buyer's VAT number (for business buyers)
buyer_vat_valid 1 if the VAT number passed VIES validation
buyer_business_name Buyer's business/company name
buyer_business_address Buyer's business address
vat_treatment VAT treatment applied to this sale (e.g. reverse charge, standard)
vat_rate VAT rate applied
vat_evidence_json Evidence collected to justify the VAT treatment (JSON)
buyer_type Buyer type: individual or business
invoice_requested 1 if the buyer explicitly requested an invoice
gateway_transaction_id Transaction identifier returned by the payment gateway

plugin_buycourses_service_rel_extra_field

Maps a service (plugin_buycourses_services) to a platform extra field it grants/adjusts on purchase (e.g. max courses, hosting quota), with the value to grant.

Field Definition
service_id References plugin_buycourses_services.id
extra_field_id References extra_field.id
granted_value Value assigned to the extra field when the service is purchased

plugin_buycourses_service_sale

A purchase of a service (plugin_buycourses_services), covering one-off and recurring/subscription charges, with buyer, pricing, tax/VAT, recurring-payment gateway state, and upgrade tracking.

Field Definition
id Unique identifier
service_id References plugin_buycourses_services.id
reference Unique transaction reference shown to the buyer and gateway
currency_id References plugin_buycourses_currency.id
price Final price charged (tax included)
price_without_tax Price before tax
tax_perc Tax percentage applied
tax_amount Tax amount charged
node_type Entity kind the service applies to: none, user, course, session, subscription package or LP final item (BuyCoursesPlugin::SERVICE_TYPE_*)
node_id References user.id, course.id or session.id depending on node_type
buyer_id See "Common fields" (buyer's user.id)
buy_date Date/time of purchase
date_start Date the granted service period starts
date_end Date the granted service period ends
status Sale status: cancelled, pending or completed (BuyCoursesPlugin::SERVICE_STATUS_*)
trial 1 if this charge is part of a trial period
payment_type Payment gateway used (BuyCoursesPlugin::PAYMENT_TYPE_*)
recurring_payment Recurring state: disabled, enabled, suspended or cancelled (BuyCoursesPlugin::SERVICE_RECURRING_PAYMENT_*)
recurring_profile_id Recurring billing profile/subscription ID at the gateway
next_charge_date Date the next recurring charge is due
cancelled_at Date/time the recurring subscription was cancelled
recurring_gateway Name of the gateway managing the recurring billing
gateway_customer_id Customer identifier at the payment gateway
gateway_checkout_session_id Checkout session identifier at the payment gateway
gateway_subscription_id Subscription identifier at the payment gateway
gateway_last_event_id Last webhook event ID processed for this sale, used for idempotency
buyer_country Buyer's declared country (ISO 3166-1 alpha-2)
buyer_postcode Buyer's postal code
buyer_ip Buyer's IP address at time of purchase
buyer_ip_country Country resolved from the buyer's IP via GeoIP
buyer_vat_number Buyer's VAT number (for business buyers)
buyer_vat_valid 1 if the VAT number passed VIES validation
buyer_business_name Buyer's business/company name
buyer_business_address Buyer's business address
vat_treatment VAT treatment applied to this sale
vat_rate VAT rate applied
vat_evidence_json Evidence collected to justify the VAT treatment (JSON)
invoice 1 if an invoice has been generated for this sale
price_without_discount Price before any coupon discount
discount_amount Amount deducted by an applied coupon
buyer_type Buyer type: individual or business
invoice_requested 1 if the buyer explicitly requested an invoice
gateway_transaction_id Transaction identifier returned by the payment gateway

plugin_buycourses_services

Catalog of sellable services (e.g. subscription packages, certificate templates, extra quotas) that can be purchased independently of a specific course/session.

Field Definition
id Unique identifier
name Service name shown to buyers
description Service description shown to buyers
price Base price
duration_days Number of days of access granted per charge
renewable 1 if the service auto-renews
total_charges Maximum number of recurring charges (0 = unlimited)
allow_trial 1 if a trial period is offered
trial_period Trial period unit (e.g. day/week/month)
trial_frequency Length of the trial period in trial_period units
trial_total_charges Number of charges included in the trial
max_subscribers Maximum number of concurrent subscribers allowed (0 = unlimited)
subscription_behavior_json Configuration of renewal/upgrade behavior (JSON)
stripe_price_id Corresponding Stripe Price object ID
display_on_course_creation_page 1 if offered to teachers on the course-creation page
applies_to Entity kind the service applies to (BuyCoursesPlugin::SERVICE_TYPE_*)
owner_id References user.id; the teacher/admin who created the service
visibility Visibility level of the service in the catalog
video_url Promotional video URL
image Illustration image filename
service_information Extended service information/marketing text
tax_perc Tax percentage applied to this service
ai_course_features_json AI course-creation features granted by this service (JSON)

plugin_buycourses_stripe_account

Single-row configuration table for the platform's Stripe account credentials used by BuyCourses.

Field Definition
id Unique identifier
account_id Stripe account identifier
secret_key Stripe API secret key
endpoint_secret Stripe webhook endpoint signing secret

plugin_buycourses_subscription

Price list for subscription-based (recurring) access to a course or session, keyed by product and duration.

Field Definition
product_type Product kind: 1 course, 2 session (BuyCoursesPlugin::PRODUCT_TYPE_*); part of the primary key
product_id References course.id or session.id depending on product_type; part of the primary key
duration References plugin_buycourses_subscription_period.duration; part of the primary key
currency_id References plugin_buycourses_currency.id
price Subscription price for this product/duration
tax_perc Tax percentage applied

plugin_buycourses_subscription_course

Tracks a subscribed course's lifecycle for a subscription-package buyer: which course was provisioned, its access status, and the audit trail of state changes (created/updated/closed/hidden/deleted).

Field Definition
id Unique identifier
service_sale_id References plugin_buycourses_service_sale.id
service_id References plugin_buycourses_services.id
course_id See "Common fields"
user_id See "Common fields"
status Course access status within the subscription (e.g. active)
context_json Additional context data for the course creation/access (JSON)
created_at
updated_at
closed_at Date/time the course access was closed
hidden_at Date/time the course was hidden from the subscriber
deleted_at Date/time the course record was soft-deleted
last_action Last lifecycle action applied to this course record

plugin_buycourses_subscription_period

Lookup of available subscription durations and their display names (e.g. monthly, yearly), referenced by plugin_buycourses_subscription.

Field Definition
duration Duration unit value; primary key
name Display name of the duration (e.g. "Monthly")

plugin_buycourses_subscription_rel_sale

A purchase of a recurring subscription (course/session access sold via plugin_buycourses_subscription), with the same buyer/pricing/VAT/invoicing fields as plugin_buycourses_sale plus subscription expiry tracking.

Field Definition
id Unique identifier
currency_id References plugin_buycourses_currency.id
reference Unique transaction reference shown to the buyer and gateway
date Date/time of the sale
user_id See "Common fields"
product_type Product kind: 1 course, 2 session (BuyCoursesPlugin::PRODUCT_TYPE_*)
product_name Snapshot of the course/session name at time of sale
product_id References course.id or session.id depending on product_type
price Final price charged (tax included)
price_without_tax Price before tax
tax_perc Tax percentage applied
tax_amount Tax amount charged
status Sale status (BuyCoursesPlugin::SALE_STATUS_*)
payment_type Payment gateway used (BuyCoursesPlugin::PAYMENT_TYPE_*)
invoice 1 if an invoice has been generated for this sale
price_without_discount Price before any coupon discount
discount_amount Amount deducted by an applied coupon
subscription_end Date the subscription period ends
expired 1 if the subscription has expired
buyer_country Buyer's declared country (ISO 3166-1 alpha-2)
buyer_postcode Buyer's postal code
buyer_ip Buyer's IP address at time of purchase
buyer_ip_country Country resolved from the buyer's IP via GeoIP
buyer_vat_number Buyer's VAT number (for business buyers)
buyer_vat_valid 1 if the VAT number passed VIES validation
buyer_business_name Buyer's business/company name
buyer_business_address Buyer's business address
vat_treatment VAT treatment applied to this sale
vat_rate VAT rate applied
vat_evidence_json Evidence collected to justify the VAT treatment (JSON)
buyer_type Buyer type: individual or business
invoice_requested 1 if the buyer explicitly requested an invoice
gateway_transaction_id Transaction identifier returned by the payment gateway

plugin_buycourses_tpvredsys_account

Single-row configuration table for the TPV Redsys (Spanish bank card gateway) merchant account credentials used by BuyCourses.

Field Definition
id Unique identifier
merchantcode Redsys merchant code
terminal Redsys terminal number
currency Redsys numeric currency code
kc Redsys secret signing key
url_redsys Redsys production gateway endpoint URL
url_redsys_sandbox Redsys sandbox (test) gateway endpoint URL
sandbox 1 if using the Redsys sandbox environment

plugin_buycourses_transfer

Bank account details shown to buyers who choose the bank-transfer payment method.

Field Definition
id Unique identifier
name Account holder name
account Bank account/IBAN number
swift Bank SWIFT/BIC code

plugin_card_game

Stores per-user progress for the CardGame minor/decorative plugin (public/plugin/CardGame/), a daily card-flipping game.

Field Definition
id Unique identifier
user_id See "Common fields"
pan Current "pan" (row/level) reached in the game, capped and displayed via getDisplayPan()
access_date Date the user last played, used to allow one play per day
parts Serialized state of the game pieces/cards collected so far

Removed tables

The tables below were documented in earlier versions of this dictionary but no longer exist in the current Chamilo 2.0 database schema (dropped or replaced by a renamed/redesigned table — e.g. settings_current was renamed to settings). They are kept here, alphabetically, purely as historical reference; do not rely on them for current development.

admin

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Contains a list of ID of user that are platform administrators. If a user ID is here, the user is a platform admin (access URLs change that behaviour slightly)

Field Definition
id Unique identifier
user_id See "Common fields"

agenda_event_invitation

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only.

Field Definition
id
creator_id
created_at
updated_at
type
max_attendees

agenda_event_invitee

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only.

Field Definition
id
invitation_id
user_id See "Common fields"
created_at
updated_at
type

c_exercise_category

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Optional table created by manual action documented in configuration.php

Field Definition
iid Unique identifier
c_id See "Common fields"
name
description
created_at
updated_at
position

c_item_property

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. This gathers the definition, visibility and changelog of most learning objects in Chamilo. It is a central piece of the database structure in 1.11

Field Definition
iid Unique identifier
c_id See "Common fields"
to_group_id See "Common fields". Represents the user group (in a course group) that receives/can see this item, if any.
to_user_id See "Common fields". Represents the user that receives/can see this item, if any.
insert_user_id See "Common fields". Represents the user who created this item.
session_id See "Common fields"
id deprecated
tool a string with the name of the tool (document, link, etc)
insert_date
lastedit_date
ref the iid of the item in its own table
lastedit_type An English string representing the last type of edition (delete,
lastedit_user_id See "Common fields". Represents the user who last edited this file.
visibility
start_visible
end_visible

c_lp_category_user

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Access specifications for specific users to specific learning paths categories

Field Definition
iid Unique identifier
category_id
user_id See "Common fields"

c_online_connected

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
iid Unique identifier
c_id See "Common fields"
last_connection
user_id See "Common fields"

c_online_link

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
iid Unique identifier
c_id See "Common fields"
id deprecated
name
url

c_permission_group

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related user permissions ...

Field Definition
iid Unique identifier
...

c_permission_task

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-releated user permissions in tasks ...

Field Definition
iid Unique identifier
...

c_permission_user

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related user permissions ...

Field Definition
iid Unique identifier
...

c_resource

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
iid Unique identifier
c_id See "Common fields"
id deprecated
source_type
source_id
resource_type
resource_id

c_role

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related roles

Field Definition
iid Unique identifier
...

c_role_group

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related roles

Field Definition
iid Unique identifier
...

c_role_permissions

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related roles

Field Definition
iid Unique identifier
...

c_role_user

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Blog-related roles

Field Definition
iid Unique identifier
...

c_survey_group

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
iid Unique identifier
c_id See "Common fields"
id deprecated
name
description
survey_id

c_userinfo_content

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Deprecated: Values for user fields in courses

Field Definition
iid Unique identifier
c_id See "Common fields"
id deprecated
user_id See "Common fields"
definition_id
editor_ip
edition_time
content

c_userinfo_def

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Deprecated: User fields in courses

Field Definition
iid Unique identifier
c_id See "Common fields"
id deprecated
title
comment
line_count
rank

class_item

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id Unique identifier
code
name

class_user

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Link between classes and users

Field Definition
class_id
user_id See "Common fields"

course_module

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id Unique identifier
name
link
image
row
column
position

event_email_template

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id Unique identifier
message
subject
event_type_name
activated
language_id

event_sent

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id Unique identifier
user_from References user.id. Represents the user who generated the event.
user_to
event_type_name

hook_call

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Internal hooks definition

Field Definition
id Unique identifier
hook_event_id
hook_observer_id
type
hook_order
enabled

hook_event

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Internal hooks definition

Field Definition
id Unique identifier
class_name
description

hook_observer

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Internal hooks definition

Field Definition
id Unique identifier
class_name
path
plugin_name

message_likes

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Likes given to messages on the social network

Field Definition
id
message_id
user_id See "Common fields"
liked
disliked
updated_at

openid_association

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id
idp_endpoint_uri
session_type
assoc_handle
assoc_type
expires_in
mac_key
created

personal_agenda

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Personal events stored in the agenda

Field Definition
id
user Reference to user.id
title
text
date
enddate
course Course code. Most often NULL as a "personal" event is not linked to a course.
parent_event_id Circular reference to personal_agenda.id to designate the event from which this one was created as a repetition
all_day
color

personal_agenda_repeat

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Repetition on personal_agenda

Field Definition
cal_id
cal_type
cal_end
cal_frequency
cal_days

personal_agenda_repeat_not

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Repetition exclusions on personal_agenda_repeat

Field Definition
cal_id
cal_date

settings_current

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Platform settings

Field Definition
id
variable
subkey
type
category
selected_value
title
comment
scope
subkeytext
access_url Reference to access_url.id
access_url_changeable
access_url_locked

shared_survey

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
survey_id Unique identifier
code Survey code (literal)
title
subtitle
author
lang
template
intro
surveythanks
creation_date
course_code

shared_survey_question

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
question_id
survey_id
survey_question
survey_question_comment
type
display
sort
code
max_value

shared_survey_question_option

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
question_option_id
question_id
survey_id
option_text
sort

specific_field

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id
code
name

specific_field_values

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id
course_code References course.code.
tool_id
ref_id
field_id
value

sys_calendar

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Global agenda events (not repetition possible)

Field Definition
id
title
content
start_date Datetime
end_date Datetime
access_url_id See "Common fields"
all_day Whether this event happens all day long or just for the given time start and end.

track_course_ranking

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Ranking based on score voted by users on courses

Field Definition
id
c_id See "Common fields"
session_id See "Common fields"
url_id See "Common fields"
accesses
total_score
users
creation_date

track_e_attempt_recording

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. (experimental) Log of historical changes to answers. This is not working properly yet in 1.11.x

Field Definition
id Unique identifier
exe_id -
question_id
answer
marks
insert_date
author
teacher_comment
session_id See "Common fields"

track_e_item_property

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Log of changes in the c_item_property table

Field Definition
id Unique ID
course_id See "Common fields" (course.id)
item_property_id ID in the c_item_property table (FK)
title
content
progress
lastedit_date datetime
lastedit_user_id See "Common fields"
session_id See "Common fields"

track_e_open

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. deprecated

Field Definition
open_id
open_remote_host
open_agent
open_referer
open_date

track_stored_values

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. Deprecated

Field Definition
id
user_id See "Common fields"
sco_id
course_id See "Common fields"
sv_key
sv_value

track_stored_values_stack

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. deprecated

Field Definition
id
user_id See "Common fields"
sco_id
stack_order
course_id See "Common fields"
sv_key
sv_value

user_rel_event_type

Removed — this table no longer exists in the current Chamilo 2.0 database schema. Kept here for historical reference only. ...

Field Definition
id
user_id See "Common fields"
event_type_name

Clone this wiki locally