Each custom field is attached in the PageNode object as an artificial property (simple types like integer, Boolean, string) or as an association (complex types like classifications or related data). These properties are not available in compile time. They can be accessed in runtime using the Sitefinity CMS API.
On database level, the custom fields are stored in sf_page_node table as additional columns. If you are using localizable string properties and Administration: Persist multilingual fields in separate tables for each language, the localized custom fields are stored in different tables.
When you add a classification custom field to a page, the system creates an additional table of type sf_page_node _<classification>, for example, sf_page_node_tags.
The following screenshot displays the database entries when you add a custom classification field of type tags, the field is named hint and has an English and Spanish translation:
Custom fields meta information, such as ColumnName, DBtype, and ClrType, is stored in table sf_meta_fields.
Supported field types
All custom fields types are supported – Lstring (Short text, Long text), Numeric, Boolean, Classifications, Related Media, Related Data, Currency, and DateTime.
In addition to the standard Overview: Field controls, as of Sitefinity CMS 7.0 the RelatedMediaField and RelatedDataField have been added and made publicly available.
For more information, see Content relations: Related data.