我想存储一个对象的历史记录,我正在寻求建议。
我的"所有者"对象有以下变量和数组列表:
private String name;
private int totalAmount;
private List<Payment> listOfPayments = new ArrayList<>();
现在我必须存储此对象的历史记录(当客户向我付款时,totalAmount将增加,Payments对象将添加到listOfPayments中)。
现在我不知道什么是存储此类对象历史的最佳方式。
在SQLite中,我想存储以下数据:
dateState(某个日期的唯一值、totalAmount的状态和listOfPayments的内容,例如,在2017年2月13日,totalAmount=450,listOfPayments=[{…},{…}]在另一个日期2017年2日,总金额=500,listOfPayments=[{…},{..},{…}]
totalAmount-我有一天的金额
listOfPayments-从一开始到现在保存的付款列表State
在每一行中存储像"name"或其他不变的数据是非常浪费内存的。
你将把它存放在哪里以及如何存放?
当数据被正确规范化时,列表会进入一个单独的表中。
您需要一个表来存储所有者的属性:
Owner
-------
OwnerID
name
总额不需要存储;它可以从其他数据中计算出来。
每个付款条目都属于所有者,因此需要一个外键:
Payment
---------
PaymentID
OwnerID
date
amount
...