在SQLite中只存储一个对象的历史记录的最佳方式是什么



我想存储一个对象的历史记录,我正在寻求建议。

我的"所有者"对象有以下变量和数组列表:

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
...

最新更新