一家服务公司想要一个准确记录谁做了什么工作的注册表,在这种情况下,我们有 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/