Aller au contenu principal

Tous les types possibles dans une table SurrealDB avec schéma

· 3 minutes de lecture
Lucas Sovre
Software architect, Docker certified expert, cloud and devsecops .

guide complet surreal db schéma

SurrealDB est une base de données puissante, dont la version 1.0 a été lancée en 2023. C'est une nouvelle génération de base de données, qui peut être avec ou sans schéma .Dans cet article, nous nous concentrerons sur la partie avec schéma de SurrealDB.

Même si la documentation officielle de SurrealDB est assez complète concernant les requêtes du langage SurrealQL, elle manque un peu d'informations sur les types disponibles dans une table avec schéma. Cet article vise à combler cette lacune.

Rappel sur la création d'une table et d'un champ

Pour créer une table dans SurrealDB, vous devez avoir déjà défini une base de données et un espace de noms. Ensuite, vous pouvez créer une table avec la commande suivante :

DEFINE TABLE product SCHEMAFULL;

Puis, pour définir un champ dans une table, vous pouvez utiliser la commande suivante :

DEFINE FIELD my_field ON TABLE product TYPE data_type;

Types disponibles dans une table SurrealDB avec schéma

Types de base

Any

DEFINE FIELD my_field ON TABLE product TYPE any;

Booléens

DEFINE FIELD active ON TABLE product TYPE bool;

Nombres

Tout nombre

DEFINE FIELD price ON TABLE product TYPE number;

Entier

DEFINE FIELD price ON TABLE product TYPE int;

Flottant

DEFINE FIELD price ON TABLE product TYPE float;

Décimal

DEFINE FIELD price ON TABLE product TYPE decimal;

Null

DEFINE FIELD price ON TABLE product TYPE null;

String

DEFINE FIELD name ON TABLE product TYPE string;

Bytes

DEFINE FIELD icon ON TABLE product TYPE bytes;

Uuid

DEFINE FIELD ext_id ON TABLE product TYPE uuid;

Types relatifs à la date et la durée

Datetime

DEFINE FIELD created_at ON TABLE product TYPE datetime;

Duration

DEFINE FIELD duration ON TABLE product TYPE duration;

Point

DEFINE FIELD location ON TABLE product TYPE point;

Record

DEFINE FIELD created_by ON TABLE product TYPE record;

Types composés

Les types composés sont formés en combinant des types de base avec composed_type<type>.

Type optionnel

Par défaut, tous les champs sont obligatoires. Si vous voulez rendre un champ optionnel, vous pouvez utiliser le type optional.

DEFINE FIELD description ON TABLE product TYPE option<string>;

Type multiple

Si vous voulez autoriser plusieurs types pour un champ, vous pouvez utiliser le type either.

DEFINE FIELD additional_propertie ON TABLE product TYPE string|number;

Tableau

DEFINE FIELD tags ON TABLE product TYPE array<string>;

Set

DEFINE FIELD tags ON TABLE product TYPE set<string>;

Géometrie

DEFINE FIELD location ON TABLE product TYPE geometry<line>;

Dans ce cas, les seuls types autorisés sont ceux définis dans la documentation de SurrealDB. Ces types respectent le format GeoJSON (défini dans rfc7946).

Cours complet sur SurrealDB

Si vous voulez en savoir plus sur SurrealDB, vous pouvez vous abonner à notre newsletter pour être informé du cours que nous préparons. Et bénéficier d'une réduction lors de sa sortie.