j'ai les schémas pseudo suivants:Changement cardinalité attribut de schéma basé sur un autre attribut
A)
-- Cost-schedule: FRE494
-- Periodic: false
-- Type: Fixed
-- Value: 70.00
-- CCY GBP
B)
-- Cost-schedule: GHK999
-- Periodic: true
-- Period start: 01/04/2015
-- Period end: 30/04/2015
-- Type: Promise
-- Filled: false
-- Value: 0.00
-- CCY: GBP
Je suis en train d'éviter toute sorte de hiérarchie méchant avec une super classe "Cost-Schedule" avec des sous-classes "Periodic" et "One-off". Premièrement, j'utilise clojure qui n'est pas OO. Aussi ne veulent pas tomber dans le piège de substitution Liskov. Donc, en tant que novice de Datomic, existe-t-il un moyen de modifier dynamiquement le schéma afin qu'une cardinalité d'attributs soit modifiée en fonction d'une autre valeur d'attribut. Dans ce cas, si Periodic est "false", nous n'avons pas besoin d'avoir Period-Start, Period-End. Si Periodic est "true", nous devons appliquer des valeurs pour ces attributs. Mon instinct dit, ce n'est pas possible. Si non, comment puis-je l'appliquer dans la base de données? Il me semble que si je dois valider explicitement la transaction avant de la soumettre à l'opérateur, alors je ne fais que définir un schéma en dehors des contraintes de Datomic qui ne semble pas sage, étant donné que beaucoup de micro-systèmes seront écrire/lire à partir de la BD et coordonner les humains pour écrire du code «correct» est difficile!
Toute aide sur la façon de surmonter ce défi très apprécié.