Database design SQLite表设计问题

Database design SQLite表设计问题,database-design,sqlite,Database Design,Sqlite,我正在做一个项目,处理所做服务的发票。我想知道什么是最好的方式来布局一个发票表,可以有一个或多个任务,每个发票。到目前为止,发票包括: Invoice Table | InvoiceNumber | Department | DateOfBilling | 现在,我需要以某种方式存储与该发票关联的作业。每个作业都有以下变量: Job | Date | ServiceDescription | Hours | Cost | (小时数和成本并不总是需要两个变量的直线乘法) 一般来说,我不熟悉SQ

我正在做一个项目,处理所做服务的发票。我想知道什么是最好的方式来布局一个发票表,可以有一个或多个任务,每个发票。到目前为止,发票包括:

Invoice Table
| InvoiceNumber | Department | DateOfBilling |
现在,我需要以某种方式存储与该发票关联的作业。每个作业都有以下变量:

Job
| Date | ServiceDescription | Hours | Cost |
(小时数和成本并不总是需要两个变量的直线乘法)

一般来说,我不熟悉SQLite和数据库,但这些都是我的想法 赶上。一种解决方案是在计费日期后添加一列,其中包含文本或BLOB条目,该条目是一个格式化字符串,从DB中提取时需要标记化。例如:

| DateofBilling | Date;ServiceDescription;Hours;Cost!Date;...
我可以将此视为在需要访问有关发票任务的特定信息时添加了大量其他工作,但不是太多的工作

另一个想法是在账单日期后添加一列,其中只包含一个JobID。然后创建一个新的作业表,其中存储了所有作业和一个匹配的作业ID。例如:

Invoice Table
| DateOfBilling | JobID

Job Table
| JobID | Date | ServiceDescription | Hours | Cost |
这看起来更干净,但我没有足够的经验知道这会对性能造成什么样的影响,如果每次发票需要作业列表,我必须在一段时间内查询每个作业的表,查询大约1-5个条目


感谢您提供的任何帮助。

如果您还有一个固定的可能的工作描述列表,您可以选择:

A Jobs reference table:
JobId, Description, BaseTimeEstimate ...

Invoice table:
InvoiceId, DepartmentId, DateOfBilling ...

Then an InvoiceDetail table:
InvoiceId, JobId, ActualHours, Cost ...
差不多吧

对于可以是自定义条目的作业,可以使用更简单的结构:

Invoice table:
InvoiceId, DepartmentId, DateOfBilling ...

Then an InvoiceDetail table:
InvoiceId, JobId, JobDescription, ActualHours, Cost ...

就像这样。

假设你也有一个固定的可能的工作描述列表,你可以选择:

A Jobs reference table:
JobId, Description, BaseTimeEstimate ...

Invoice table:
InvoiceId, DepartmentId, DateOfBilling ...

Then an InvoiceDetail table:
InvoiceId, JobId, ActualHours, Cost ...
差不多吧

对于可以是自定义条目的作业,可以使用更简单的结构:

Invoice table:
InvoiceId, DepartmentId, DateOfBilling ...

Then an InvoiceDetail table:
InvoiceId, JobId, JobDescription, ActualHours, Cost ...

就像那样。

发票和作业之间有什么类型的关联:多对多,一对多?发票和作业之间有什么类型的关联:多对多,一对多?有些作业可以固定,但很多是自定义条目。有些作业可以固定,但很多是自定义条目。