Custom fields
Custom fields can be thought of as “What fields would my organization want on this model if I were to build it?” You can do this without changing any code, and custom fields extend existing database tables immediately.
A custom field is data that is applied to existing model object instances, often defining configuration, inventory, or metadata. With a few exceptions, core models provide support for custom fields.
As mentioned at the beginning of this chapter, creating a data model that would apply to all organizations is impossible and wouldn’t be advantageous as it would come with increased complexity – and custom fields exemplify that mantra. A custom field can define additional data such as TAC contract data on a device, something that wouldn’t be reasonable to extend to all organizations. It can also be used to track Site IDs (or old IDs) and types of sites, as shown in the following screenshot: