什么是导出属性?即 计算出来的属性;
比如:SaleItem.TotalCost = Item单价×Item数量 , 那么TotalCost就是SaleItem的导出属性;
现在我们有了SaleItem领域模型;
那么如何设计数据库比较合适?
对应有个t_SaleItem, Column 是否需要TotalCost? 如果我们不要,那么程序要获取TotalCost的数据时候,就是通过计算得到;如果需要,那么在产生这个Sale Event 的是计算出结果并放到TotalCost字段上。
因此就这个例子而言,它是需要在数据表中加这个字段的,原因是如果可以允许延迟付款,那么在为付款期间,调整了商品的零售价,TotalCost也会变化,这种情况对购买商品的客户来说是不可接受的;
那什么时候不需要这个Column,在这样的情况下,某人要知道自己年龄
在这个模型的UserEntity.Age = CuttentDate - UserEntity.Birthday; 对于这样情况,我们在创建t_User的时候就可以不需要Age这个Column;