In this section you’ll find an overview of the fundamental types, objects, and concepts for EdgeDB, a relational database with strongly typed schema. Here’s a quick overview of the links below:
Types in EdgeDB include your own Object Types (e.g. User) and
Abstract Types for other types to extend (e.g.
User and others can inherit), plus Scalar Types with single values
int64, etc.) and Collection Types like arrays and
tuples for multiple values.
Start putting your Object Types together with properties and
links. Then build on them with items like annotations (readable
notes for others), constraints to set limits (e.g. maximum length,
minimum value, or even create your own), indexes for faster querying,
and computables to use expressions to define properties or links
property email := .user_name ++ '@' ++ .provider_name).
Expression Aliases let you use existing types under new names to build on them without touching the original – both in your schema or on the fly inside a query. You can also create your own functions, strongly typed along with everything else in EdgeDB. All this goes into the schema under one or more modules (namespaces).