我正在開發一個處理已完成服務的發票的程序。我想知道什麼是最好的方式來佈置發票的表,可以有一個或多個任務的發票。到目前爲止發票包括:SQLite表設計問題
Invoice Table
| InvoiceNumber | Department | DateOfBilling |
現在,我需要以某種方式存儲與發票相關的工作。每個作業有下列變量:
Job
| Date | ServiceDescription | Hours | Cost |
(時間和成本並不總是直線乘法需要兩個變量)
我是新來使用SQLite和數據庫的一般營運,但這些都是我想到 了。一種解決方案是在發票日期之後添加一個包含TEXT或BLOB條目的列,該條目是一個格式化字符串,當從數據庫中拉出時需要標記化。例如:
| 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 ...
類似的東西:
發票和工作之間有什麼類型的關聯:多對多,一對多? – outis 2010-02-11 05:44:05
一張發票給許多工作。 – 2010-02-13 06:55:18