我遇到了将某些场景映射到数据库的问题。问题是这样的。
有两个实体名为Employee(empID,empName)
和Task(taskID,taskName)
。
我应该遵循的表结构是什么..
我将在java中使用spring MVC和hibernate来实现这个场景。我可以修复这个问题..
有什么想法吗?
提前致谢!
答案 0 :(得分:0)
看起来您可能需要另一个名为EMPLOYEE_TASKS的表:
ID - sequence, PK.
EMPLOYEE_ID, numeric, not null, FK to ID in the EMPLOYEE table.
TASK_ID - numeric, unique key, not null, FK to ID in the TASKS table.
您的0或1名员工/任务要求由英国在TASK.TASK_ID上处理。 每位员工的0对多任务由EMPLOYEE_ID + TASK_ID对处理。因为TASK_ID是唯一的,所以这对不需要。在现实世界中,我可能会把它作为一个索引。
现在我使用hibernate的逆向工程工具来创建带注释的模型。我们将主键序列生成器规范放在reveng.xml文件中。
如果每个任务只有一名员工,则不需要此表。我们可以在TASK表中添加EMPLOYEE_ID,但是两个任务可能没有EMPLOYEE。这意味着我们无法将该列设为英国。因此,我们很难使用数据库来强制实施零或一约束。