Object types are the primary components of EdgeDB schema. An object type is a collection of named properties and links to other object types. An instance of an object type is called an object. All data in EdgeDB is represented by objects and by links between objects.
Every object has a globally unique identity represented by a
value. An object’s identity is assigned upon creation and never changes.
Referring to its id property yields its identity as a
uuid value. Once set, the value of the
cannot be changed or masked with a different computed expression. The globally unique
id guarantees that the database does not contain any object
Object types can extend other object types, in which case the extending type is called a subtype and types being extended are called supertypes. A subtype inherits all links, properties and other aspects of its supertypes. It is possible to extend more than one type - that’s called multiple inheritance. This mechanism allows building complex object types out of combinations of more basic types.