MySQL - 将员工链接到发票#

标签 mysql list storage

一家服务公司想要一个准确记录谁做了什么工作的注册表,在这种情况下,我们有 9 名员工,其中一名或多名员工一次可以开具一张发票。

问题是:为了让管理层获得每个员工完成的工作(工资单)的查询,数据库应该如何存储员工完成的发票?

到目前为止,主管标记了在每张发票中工作的员工,而数据库有所有 9 名员工,我在将矩阵存储到列中时遇到了麻烦——或者更确切地说,是列中的员工列表。

在搜索 employee#2 时是否可以由 employee 查询而不找到 say employee 22?

Invoice #                   List of Employees
 1                        3, 5
 2                        8, 1, 4
 3                        6
 4                        7, 2, 9, 3...

谢谢

最佳答案

CREATE TABLE Employee
(
    [Id] INT NOT NULL PRIMARY KEY
    ...
)

CREATE TABLE Invoice
(
    [Id] INT NOT NULL PRIMARY KEY
    ...
)

CREATE TABLE EmployeeInvoice
(
    [EmployeeId] INT NOT NULL, 
    [InvoiceId] INT NOT NULL, 
    PRIMARY KEY ([EmployeeId], [InvoiceId]), 
    CONSTRAINT [FK_EmployeeInvoice_ToTableEmployee] 
    FOREIGN KEY ([EmployeeId]) REFERENCES [Employee]([Id]), 
    CONSTRAINT [FK_EmployeeInvoice_ToTableInvoice] 
    FOREIGN KEY ([InvoiceId]) REFERENCES [Invoice]([Id])
)

关于MySQL - 将员工链接到发票#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781140/

相关文章:

php - 将日期转换为整数(时间戳)

PHP 对 MySQL 中的数组计数不正确

python - PySpark:将 python 列表中的元素添加到 spark.sql() 语句中

postgresql - 表格大小与页面布局

swift - 在永久存储中快速存储字典

MySQL bin 日志分成 block

MySQL:同一字段上具有不同 WHERE 的多个 SELECT 会导致不同的列

mongodb - 查找查询结果到List

java - java中根据参数对对象进行排序

android - 在较旧的 API 版本上使用已弃用的函数?