【发布时间】:2015-07-16 09:21:20
【问题描述】:
我有以下伪模式:
一)
-- 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
我试图避免任何带有子类“定期”和“一次性”的超类“成本计划”的讨厌的层次结构。首先,我使用的是不是 OO 的 clojure。也不想掉入里氏换人陷阱。
所以,作为 Datomic 的新手,有没有办法动态更改架构,以便根据另一个属性值修改属性基数。在这种情况下,如果 Periodic 为“false”,我们不需要设置 Period-Start、Period-End。如果 Periodic 为“true”,那么我们需要强制为这些属性设置值。
我的直觉告诉我,这是不可能的。如果没有,我如何在数据库中强制执行此操作?在我看来,如果我必须在将交易提交给交易者之前明确地验证交易,那么我实际上只是在 Datomic 的约束之外定义一个模式,这似乎并不明智,因为许多微系统将是从数据库写入/读取并协调人类编写“正确”代码很困难!
非常感谢任何有关如何克服这一挑战的帮助。
【问题讨论】: