在Oracle 11g表列中避免逗号分隔的值

时间:2018-10-28 07:04:40

标签: sql spring-mvc oracle11g

我正在研究基于Spring MVC的Web应用程序。我正在使用Oracle 11g,我需要归一化包含100列的表名"Employee",目前,我在四个不同的表中将其分解了。

  1. Emp_Personal_Detail
  2. Emp_Official_Detail
  3. Emp_Location_Detail
  4. Emp_Banking_Detail

现在,这里的问题在Emp_Official_Detail中。 列名为Function/WingAssigned_Section

Function_Wing是包含以下内容的主表, 管理, 金融, 人力资源, 它。, 汽车, 区域存储 等

类似地, Assigned_Section是包含值的主表

债券, IDPC, 合资企业, 公平, 审计, 税收等

对于每位员工,这两列都将具有一对多映射。 以一种简单的方式,每个员工都与多个Function/Wing相关联,并且同时,每个员工也都与多个Assigned_Section相关联。

我现在所做的

我只是用逗号分隔来存储值。

例如:

Emp_name: jones
Emp_code: 12321
Function/Wing: 1,2,3
Assigned_section:5,6

但是我不想以这种方式来管理值。 将来,我需要显示数据并实现下载excel功能,正如我所经历的那样,逗号分隔的值会降低查询性能。

现在我正处于开发阶段,我有时间完成这些工作,因此请建议我遵循的最佳方法或最佳结构是什么,因此很容易高效地获取它。

1 个答案:

答案 0 :(得分:1)

您还需要两个表来解决这个问题。

用于将Employee映射到Function / Wing映射的第一张表: 结构将是简单的2列: 1.员工编号 2.功能/机翼

用于将员工映射到已分配部分的第二张表: 结构将是简单的2列: 1.员工编号 2. Assigned_section