现在我们讨论领域模型SnackMachine和Money地数据库设计。
public final class SnackMachine extends Entity{public Money moneyInside;public Money moneyInTransaction;}public class Money extends ValueObject{public int oneCentCount;public int tenCentCount;public int quarterCount;public int oneDollarCount;public int fiveDollarCount;public int twentyDollarCount;}
首先我们需要明确哪些字段需要持久化,这个问题有必要领域专家讨论。如果moneyInside,moneyInTransaction都需要存储,那么也就意味着不仅交易结果需要持久化,过程呀需要。


我们可能会设计两张表,SnackMachine通过外键联结Money。这是好地设计模式,但有两个大问题:一,Money类含有id字段,这违反了它作为值对象地特性;二,这使Money能过脱离SnackMachine存在,显然又违反了值对象的原则。最好地方法使将它们合成一张表:

借助Spring boot,我们无需手动创建表。
