我应该使用什么方法来存储许多类别的数据?

时间:2017-09-27 13:19:50

标签: database-design

我遇到的问题是,我的应用试图向客户展示几个月的发票历史记录,而且我不确定如何保存所有数据。

目前我将所有的许多客户数据存储在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

当然有一种更简单的方法可以做到这一点

1 个答案:

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

使用上述结构,客户可以有多个发票,每个发票可以有多个项目,并且它们都在外键上链接在一起。这有意义吗?