2

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

Labor_invoice_table(这是我创建的主表)

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

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

我在谷歌上搜索它。在这里,我还找到了一个有用的详细信息链接 发现我应该创建新表

劳动力_工作_描述

  • 发票编号(FK 父 Labor_invoice_table)
  • 职位描述
  • 工作量

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

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

4

2 回答 2

1

要生成发票,您可以使用如下查询

选择 ID,LabourName,InvoiceDate,Description,Amount From Invoice 内部加入 Invoice.ID = Labor_Job_Description.InvoiceID 总金额:

从 Labor_Job_Description 中选择 sum(amount),其中 Labor_Job_Description.InvoiceId= Insert 将是这样的..

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

设置@invoiceID= LAST_INSERT_ID();

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

于 2014-12-25T07:22:19.670 回答
0

你需要这个关系

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

劳动

  • ID。(PK)
  • name_of_labor
  • 日期

工作

  • 身份证(PK)
  • 职位描述
  • 工作量

劳力工作

  • 劳动力 ID。(FK 父发票表)
  • job_id.(FK 父劳动表)

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

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
于 2014-10-16T05:07:17.947 回答