劳动力工作发票的MySQL数据库设计问题

时间:2014-10-16 04:21:34

标签: mysql database database-design invoices

我正在为劳务工作发票设计数据库。 我有以下实体。

Labor_invoice_table(这是我创建的主表)

  • 日期
  • 发票编号(PK)
  • 劳工名称
  • 职位描述
  • 每份工作量
  • 总金额

在这里,我对工作描述和每个工作发票行项目的金额感到困惑。在每个发票上,我有多个工作,每个工作的金额都是。

我在谷歌搜索它。 我还在这里找到了一个有用的细节link 发现我应该创建新表

Labor_Job_Description

  • 发票编号(FK parent Labor_invoice_table)
  • 职位描述
  • 工作金额

这样多个作业就可以存储在另一个表中。

这是正确的方法吗?或者我应该尝试别的吗?

2 个答案:

答案 0 :(得分:1)

要生成发票,您可以使用

之类的查询

选择ID,LabourName,InvoiceDate,Description,Amount 来自发票 内部联接Invoice.ID = Labor_Job_Description.InvoiceID 总金额:

选择金额(金额)    来自Labor_Job_Description,其中Labor_Job_Description.InvoiceId = 插入将是这样的..

插入发票(InvoiceDate,LaborName)   值(curdate(),'name');

设置@ invoiceID = LAST_INSERT_ID();

插入Labor_Job_Description(InvoiceNo,Description,Amount)   值(@ invoiceID,'desc',10);

答案 1 :(得分:0)

您需要relation

可能你需要多对多的关系。因为每个劳动力都可以有很多工作,或者每个工作都可以有很多劳动力。

劳动

  • ID。 (PK)
  • name_of_labor
  • 日期

工作

  • ID(PK)
  • job_description
  • Job_amount

labor_job

  • labor_id。(FK parent invoice_table)
  • job_id。(FK parent labor_table)

现在您已准备好加入查询。

SELECT
 *
FROM
  labor_job AS lg
JOIN
   labor AS l ON lg.labor_id = l.id
JOIN
   job AS j ON lg.job = j.id