一家服务公司想要一个究竟是谁做了什么工作的注册中心,在这种情况下,我们有9名员工,其中一名或多名员工一次可以开一张发票。
问题是:对于管理层获取每个员工所做的工作(工资)的查询,数据库应该如何存储员工所做的发票?
到目前为止,主管会对每张发票中的员工进行标记,而db有全部9名员工,我很难将矩阵存储到列中--或者更确切地说,是列中的员工列表。
在搜索employee# 2时,员工可以在没有找到员工22的情况下对此进行查询吗?
Invoice # List of Employees
1 3, 5
2 8, 1, 4
3 6
4 7, 2, 9, 3...谢谢
发布于 2017-12-12 20:44:18
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])
)https://stackoverflow.com/questions/47781140
复制相似问题