Unlock AI power-ups — upgrade and save 20%!
Use code STUBE20OFF during your first month after signup. Upgrade now →

By Charlène Patas-Monkey
Published Loading...
N/A views
N/A likes
Dictionary Tables (Tables starting with 'c')
📌 Dolibarr utilizes dictionary tables, often beginning with 'c', which store default lists like commercial action types or status codes (e.g., `llx_c_action_type`, `llx_c_stcomm`).
⚙️ These tables generally follow a structure of a key, a code, a label, and an `active` column to enable or disable the element.
🗄️ Dictionaries are managed via the "Dictionary" menu in the Dolibarr environment; caution is advised when modifying some default dictionaries, like the country list, as it can break system functionality.
Category Tables
📌 The system uses a central `llx_category` table to hold all defined categories for various entities (clients, products, services, etc.).
🧩 The type of entity a category belongs to is identified by a 'type' column (e.g., Type 2 for companies, Type 0 for products, Type 1 for services).
🔗 Specific relationship tables link categories to entities, such as `llx_category_company` linking companies to categories using foreign keys for both the company and the category ID.
Extra Fields (Extrafields)
🗃️ Extrafields allow users to add custom fields to existing records (like third parties, orders, invoices) via a configuration menu under module settings.
🧱 A dedicated table, like `llx_extrafield`, stores the definitions of these custom fields, including the element type they belong to and various parameters.
💾 When an extrafield is created for an element (e.g., Company), a corresponding column is dynamically added to the element's main table (e.g., `llx_societe_extrafield`).
⚠️ Deleting an extrafield definition does not automatically drop the corresponding database column; manual deletion in the database might be required, though care must be taken not to lose data if the column still exists.
Element Linking Tables (llx_element_element)
🔗 The `llx_element_element` table manages relationships and links between different Dolibarr objects (e.g., linking a created Invoice to its source Order).
➡️ This table records the source object (`source_type`, `source_id`) and the destination object (`target_type`, `target_id`), establishing the chain of document creation.
🔗 Propagation of data for extrafields is managed between linked documents (e.g., from Proposal to Order) if the same extrafield is defined on both elements.
Element Contact Table (llx_element_contact)
🔗 The complex `llx_element_contact` table links contacts (people) to specific elements (like orders or invoices).
❓ Determining which table a contact belongs to (e.g., `llx_user` vs. `llx_societe_contact`) depends on the "Contact Type" dictionary, which specifies if the link is internal or external.
🐛 This table structure is noted as being complex and less clean, often requiring checking the contact type ID against the dictionary to understand if the linked person is an internal user or an external contact.
Element Time Table (llx_element_time)
🆕 Introduced in Dolibarr v18, the `llx_element_time` table centralizes time entries, migrating from older, specific tables like `llx_project_task_time`.
🔄 This table includes fields for duration, product usage, and the user who logged the time, with an `element_type` field allowing time tracking across various entities beyond just tasks (like tools or manufacturers).
🔜 This table is expected to evolve, potentially serving as a generic repository for time data from various modules, aiding in data standardization.
Key Points & Insights
➡️ Dictionary Tables (prefixed with 'c') are essential for configuring standard lists within Dolibarr, managed via the Dictionary Menu.
➡️ Extrafields are a core strength of Dolibarr for customization, allowing quick addition of custom data fields to most entities, but require awareness regarding database cleanup after deletion.
➡️ The `llx_element_element` table is crucial for understanding document flow and lineage (e.g., Order -> Invoice) within the system architecture.
➡️ The `llx_element_contact` table linkage is complex, requiring cross-reference with the Contact Type Dictionary to correctly identify the source table for a linked contact (user vs. third-party contact).
📸 Video summarized with SummaryTube.com on Feb 04, 2026, 08:05 UTC
Find relevant products on Amazon related to this video
As an Amazon Associate, we earn from qualifying purchases
Full video URL: youtube.com/watch?v=RlwtZqMxoS4
Duration: 35:17
Dictionary Tables (Tables starting with 'c')
📌 Dolibarr utilizes dictionary tables, often beginning with 'c', which store default lists like commercial action types or status codes (e.g., `llx_c_action_type`, `llx_c_stcomm`).
⚙️ These tables generally follow a structure of a key, a code, a label, and an `active` column to enable or disable the element.
🗄️ Dictionaries are managed via the "Dictionary" menu in the Dolibarr environment; caution is advised when modifying some default dictionaries, like the country list, as it can break system functionality.
Category Tables
📌 The system uses a central `llx_category` table to hold all defined categories for various entities (clients, products, services, etc.).
🧩 The type of entity a category belongs to is identified by a 'type' column (e.g., Type 2 for companies, Type 0 for products, Type 1 for services).
🔗 Specific relationship tables link categories to entities, such as `llx_category_company` linking companies to categories using foreign keys for both the company and the category ID.
Extra Fields (Extrafields)
🗃️ Extrafields allow users to add custom fields to existing records (like third parties, orders, invoices) via a configuration menu under module settings.
🧱 A dedicated table, like `llx_extrafield`, stores the definitions of these custom fields, including the element type they belong to and various parameters.
💾 When an extrafield is created for an element (e.g., Company), a corresponding column is dynamically added to the element's main table (e.g., `llx_societe_extrafield`).
⚠️ Deleting an extrafield definition does not automatically drop the corresponding database column; manual deletion in the database might be required, though care must be taken not to lose data if the column still exists.
Element Linking Tables (llx_element_element)
🔗 The `llx_element_element` table manages relationships and links between different Dolibarr objects (e.g., linking a created Invoice to its source Order).
➡️ This table records the source object (`source_type`, `source_id`) and the destination object (`target_type`, `target_id`), establishing the chain of document creation.
🔗 Propagation of data for extrafields is managed between linked documents (e.g., from Proposal to Order) if the same extrafield is defined on both elements.
Element Contact Table (llx_element_contact)
🔗 The complex `llx_element_contact` table links contacts (people) to specific elements (like orders or invoices).
❓ Determining which table a contact belongs to (e.g., `llx_user` vs. `llx_societe_contact`) depends on the "Contact Type" dictionary, which specifies if the link is internal or external.
🐛 This table structure is noted as being complex and less clean, often requiring checking the contact type ID against the dictionary to understand if the linked person is an internal user or an external contact.
Element Time Table (llx_element_time)
🆕 Introduced in Dolibarr v18, the `llx_element_time` table centralizes time entries, migrating from older, specific tables like `llx_project_task_time`.
🔄 This table includes fields for duration, product usage, and the user who logged the time, with an `element_type` field allowing time tracking across various entities beyond just tasks (like tools or manufacturers).
🔜 This table is expected to evolve, potentially serving as a generic repository for time data from various modules, aiding in data standardization.
Key Points & Insights
➡️ Dictionary Tables (prefixed with 'c') are essential for configuring standard lists within Dolibarr, managed via the Dictionary Menu.
➡️ Extrafields are a core strength of Dolibarr for customization, allowing quick addition of custom data fields to most entities, but require awareness regarding database cleanup after deletion.
➡️ The `llx_element_element` table is crucial for understanding document flow and lineage (e.g., Order -> Invoice) within the system architecture.
➡️ The `llx_element_contact` table linkage is complex, requiring cross-reference with the Contact Type Dictionary to correctly identify the source table for a linked contact (user vs. third-party contact).
📸 Video summarized with SummaryTube.com on Feb 04, 2026, 08:05 UTC
Find relevant products on Amazon related to this video
As an Amazon Associate, we earn from qualifying purchases

Summarize youtube video with AI directly from any YouTube video page. Save Time.
Install our free Chrome extension. Get expert level summaries with one click.