---
title: Custom tables
related:
  - https://docs.kentico.com/k11/developing-websites/loading-and-displaying-data-on-websites/displaying-data-from-custom-tables.md
  - https://docs.kentico.com/k11/developing-websites/loading-and-displaying-data-on-websites/writing-transformations/writing-transformations-for-custom-tables.md
  - https://docs.kentico.com/k11/custom-development/custom-table-internals-and-api.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Custom tables allow you to create your own tables in the system database. You can manage the data in custom tables without using Microsoft SQL Server Management Studio or any other database management tool. You will find this useful especially when you need to store a large number of items in a flat data structure. Standard Kentico pages are not as efficient as custom tables for storing items in a flat structure. Refer to [Storing data effectively](https://docs.kentico.com/k11/developing-websites/defining-website-content-structure.md) for more information on the advantages of using custom tables over Pages.

To learn how to display data from custom tables on the live website, see:

- [Displaying data from custom tables](https://docs.kentico.com/k11/developing-websites/loading-and-displaying-data-on-websites/displaying-data-from-custom-tables.md)
- [Writing transformations for custom tables](https://docs.kentico.com/k11/developing-websites/loading-and-displaying-data-on-websites/writing-transformations/writing-transformations-for-custom-tables.md)

Data stored in the tables can be searched using [locally stored search indexes](https://docs.kentico.com/k11/configuring-kentico/setting-up-search-on-your-website/using-locally-stored-search-indexes.md). You can also [create alternative forms for the tables](https://docs.kentico.com/k11/developing-websites/defining-website-content-structure/custom-tables/creating-alternative-editing-forms-for-custom-tables.md). These forms can be used instead of the default forms for creating or editing custom tables in the administration interface, as described in [Code names of automatically used alternative forms](https://docs.kentico.com/k11/configuring-kentico/creating-alternative-forms/code-names-of-automatically-used-alternative-forms.md).

You can use custom tables to store the data of custom-developed modules. Developers can handle custom tables and their data via the [custom table API](https://docs.kentico.com/k11/custom-development/custom-table-internals-and-api.md).

> **Tip:** **Custom table object type**
>
> If you need to specify the type of the records in a custom table, use the following naming convention:
>
> _CustomTableItem._
>
> For example, a custom table with code name _CustomTable.User&#x73;_&#x68;as records of type:
>
> _CustomTableItem.CustomTable.Users_
