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

Database design 我应该使用什么方法来存储多个类别的数据?,database-design,Database Design,我遇到的问题是,我的应用程序试图向客户显示几个月的发票历史记录,我不确定如何保存所有数据 目前,我的许多客户的所有数据都存储在SQLiteDatabase中,我认为这是最简单的选择,尽管我不知道如何保存他们以前购买的产品 我应该继续使用SQLite,只为每次收费构建更多的列,还是有更好的选择 数据库模式是 表=客户 COLUMN1=ID COLUMN2=NAME COLUMN3=ADDRESS COLUMN4=SPECIAL NOTES 从这里开始,我能想到的最好的方法是为收费的服务添加专栏,

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

目前,我的许多客户的所有数据都存储在SQLiteDatabase中,我认为这是最简单的选择,尽管我不知道如何保存他们以前购买的产品

我应该继续使用SQLite,只为每次收费构建更多的列,还是有更好的选择

数据库模式是

表=客户

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

当然,有一种更简单的方法可以做到这一点,如果你发布你的模式,或者它的一个代表性示例,我可以稍微调整一下,但是根据你的描述,听起来你需要一个子表,就像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.

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

我想您需要更多的行,每个行都有一个时间戳,这意味着需要另一个表。但是如果没有看到数据库模式和示例数据,很难说。您会如何确切地问这个问题?无论如何,对于任何人来说,除了创建此帖子时出现的弹出窗口之外,还有什么更有用的,我将尽我所能发布我的DB方案。一定要分享你的方案,或者该方案的代表性示例。不过,这听起来像是发票桌上的工作,因为@CLThank我想第二张桌子可能最适合这样做。非常感谢,完美的答案。将更新这方面的进展。我已经更新了您的awnser,但我太新了:(谢谢您的时间。非常欢迎您-我们都在这一点上是新的。一定要标记为“接受”-我理解这使其他人更容易找到。