Tous les types possibles dans une table SurrealDB avec 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.