Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Table relationships

You can create relationships between tables by extending tables, referencing records in another table, creating many-to-many relationships, and joining tables in a database view.

Tables can be related to each other in several ways.

  • Extensions

    A table can extend another table. The table doing the extending (child class) includes all of the fields of the other table (parent class) and adds its own fields. For instance, the Incident [incident] table has all of the Task [task] table fields (because an incident is a special form of task) and has its own incident-specific tasks. See Table extension and classes.

  • One-to-many

    Within a table, a field can hold a reference to a record on another table. There are three types of one-to-many relationship fields.

    • Reference fields

      Allow a user to select a record on a table defined by the reference field. For instance, the Caller field on the Incident table allows the user to select any record on the User table.

    • Glide lists

      Allow a user to select multiple records on a table defined by the glide list. For instance, the Watch list field on the Incident [incident] table allows the user to select records on the User [sys_user] table.

    • Document ID fields

      Allow a user to select a record on any table in the instance. These fields are much less common, but one example is the Document field on the Translated Text [sys_translated_text] table.

  • Many-to-many

    Two tables can have a bi-directional relationship, so that the related records are visible from both tables in a related list.

  • Database views

    Two tables can be joined virtually in a database view to enable reporting on data that might be stored over more than one table.

Parent Topic:Exploring ServiceNow AI Platform tables