我是数据库设计的新手,我真的需要一些帮助来解决这个问题。
我有一个名为Processes的表,该表包含作业进程的所有名称。然后我有一个名为TrainingProcesses的表。该表只有Process1,Process2,Process3等名称,直到Process30。
每位员工最多可以培训30个流程。因此,对于他正在学习的员工第一个流程,我需要能够选择流程ID,将流程ID分配给他的配置文件中的Process1。 Process1不是特定的,它只是他们分配给他的任何工作流程。
你能告诉我如何将所有这些联系在一起吗?
EmployeeInformationTable
LastName
ProcessesTable
Id
Appm
Route H
RouteJ
TrainingProcessesTable
Process1
Process2
Process3
EmployeeInformationTable Id
ProcessTable Id
是否会像上面那样用简单的术语来完成?
答案 0 :(得分:1)
您的桌面结构可行,并实现您期望的目标。那可以像上面的简单术语一样吗?是。
您可能还想考虑从TrainingProcessTable中删除“process1-30”列,并且只限制员工可以在应用程序逻辑内部而不是数据库中训练的最大进程数。这样做的好处是,如果您需要增加员工可以培训的流程数量,则无需更改数据库架构。
(EmployeeInformationTable)“Id”“FirstName”“LastName”
(ProcessesTable)“Id”“Appm”“Route H”“RouteJ”
(TrainingProcessesTable)“EmployeeInformationTable Id”“ProcessTable Id”
答案 1 :(得分:0)
您不希望将进程存储为单独的列。当你想做类似&#34之类的事情时,这只会引起令人头疼的问题;在所有其他事件之后添加一个新流程"。
EmployeeInformationTableId
ProcessTableId
您可能还需要更多信息:
如何将每位员工的长度限制为30?不幸的是,这有点棘手:
在实践中(1)是最简单的; (2)通常是我做的事情,(3)也许是最安全的,所以数据库保持完整性。