Avancé – Utiliser les contraintes de Generic System

Toute base de données qui se respecte permet de poser des contraintes.
Generic System le permet également. Abordons dans un premier temps comment les utiliser.

Utilisation des contraintes

Prenons trois contraintes utilisateur et voyons comment les appliquer avec notre exemple maintenant bien connu de Vehicle.

PropertyConstraint

La première contrainte est PropertyConstraint.
Une nouvelle gamme de voiture est récemment apparue sur le marché et ne peut avoir qu’une seule options à la fois. Par chance, c’est justement la contrainte que nous voulons tester !

Continue reading Avancé – Utiliser les contraintes de Generic System

Avancé – Les contraintes dans Generic System

Dans les bases de données relationnelles, de nombreuses contraintes existent : clé primaire, clé étrangère, non null…
Dans Generic System, il existe aussi des contraintes. C’est ce à quoi nous allons nous intéresser maintenant.

Les contraintes

Toutes les contraintes sont vérifiées lors du flush() du cache, mais certaines sont aussi vérifiées immédiatement (lors de l’ajout ou de la suppression d’un type, d’une instance, etc.).
Commençons par un tour d’horizon des différentes contraintes. Mais juste avant cela, vous devez savoir une chose : certaines contraintes sont paramétrables par l’utilisateur, d’autres par le système lui-même. Les contraintes utilisateur sont des contraintes que vous pouvez choisir de poser, alors que les contraintes système ne peuvent pas être désactivées.

Continue reading Avancé – Les contraintes dans Generic System

Avancé – Supprimer un generic

Depuis le début de l’utilisation de Generic System, nous avons créé des types, des instances, des attributs… et nous avons vu comment les supprimer en utilisant la fonctionnalité remove().
Ah, au fait, il y a un terme générique pour désigner un type, une instance, un attribut, un holder, une relation ou encore un link : il s’agit tout simplement d’un Generic.

Suppression d’un generic

Un generic peut être supprimé en utilisant la méthode remove().

Nous avions utilisé cet exemple pour supprimer un type :

Suppressions et dépendances

Comme dans toute base de données, il faut faire attention lors des modifications et particulièrement lors des suppressions.
Vous ne pouvez pas supprimer un Generic si d’autres en dépendent : c’est la fameuse contrainte d’intégrité référentielle des bases de données relationnelles, qui existe également sur Generic System.
Le meilleur exemple pour comprendre est la suppression d’un type qui est relié à un autre. Continue reading Avancé – Supprimer un generic