我遇到的问题是,我的应用试图向客户展示几个月的发票历史记录,而且我不确定如何保存所有数据。
目前我将所有的许多客户数据存储在SQLiteDatabase中,我认为这是最简单的选择,但我不知道如何保存以前的购买。
我是否应继续使用SQLite并为每次之前的费用构建更多列,还是有更好的选择?
DB Schema
TABLE =客户
COLUMN1=ID
COLUMN2=NAME
COLUMN3=ADDRESS
COLUMN4=SPECIAL NOTES
从这里我能想到的最好的方法是为收费服务添加列,以及三个复制列,以便有几个月的历史记录。如,
Col4month1=Service1
Col5month1=Service2
Col6month1=Service3
Col7month1=Service4
Col8month2=Service1
Col9month2=Service2
Col10month2=Service3
Col11month2=Service4
当然有一种更简单的方法可以做到这一点
答案 0 :(得分:1)
如果你发布你的模式或它的代表性样本,我可以稍微调整一下,但根据你的描述,听起来你需要一个子表,正如CL建议的那样。它看起来像这样:
Client
ID --primary key
First_Name
Last_Name
etc.
Invoice
ID --primary key
Client_ID --foreign key link to Client
Invoice_Date
Invoice_Amount
etc.
Invoice_Line_Item
ID --primary key
Invoice_ID --foreign key link to Invoice
Item_Number
Quantity
etc.
使用上述结构,客户可以有多个发票,每个发票可以有多个项目,并且它们都在外键上链接在一起。这有意义吗?