【发布时间】:2010-02-12 13:41:07
【问题描述】:
我正在开发一个处理已完成服务的发票的程序。我想知道布局一张发票表的最佳方式是什么,每张发票可以有一个或多个任务。到目前为止,发票包括:
Invoice Table
| InvoiceNumber | Department | DateOfBilling |
现在,我需要以某种方式存储与该发票关联的作业。每个作业都有以下变量:
Job
| Date | ServiceDescription | Hours | Cost |
(小时和成本并不总是需要两个变量的直接乘积)
我通常是使用 SQLite 和数据库的新手,但这些是我的想法 跟上。一种解决方案是在计费日期之后添加一列,其中包含一个 TEXT 或 BLOB 条目,该条目是一个格式化字符串,从数据库中提取时需要进行标记。例如:
| DateofBilling | Date;ServiceDescription;Hours;Cost!Date;...
当需要访问有关发票任务的特定信息时,我可以将其视为添加了许多其他工作,但工作量不大。
另一个想法是在“开票日期”之后添加一列,该列仅包含一个 JobID。然后有一个新的作业表来存储所有作业和一个匹配的 JobID。示例:
Invoice Table
| DateOfBilling | JobID
Job Table
| JobID | Date | ServiceDescription | Hours | Cost |
这看起来更简洁,但我没有足够的经验知道如果每次发票都需要作业列表时,我必须在一段时间内查询每个作业的表1-5个左右的条目。
感谢您提供的任何帮助。
【问题讨论】:
-
发票和作业之间存在什么类型的关联:多对多、一对多?