Избегайте разделенных запятыми значений в столбце таблицы Oracle 11g - PullRequest
0 голосов
/ 28 октября 2018

Я работаю над веб-приложением на основе Spring MVC.Я использую Oracle 11g и мне нужно нормализовать имя таблицы "Employee" содержит 100 столбцов, в настоящее время я разбил то же самое в четырех разных таблицах.

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

Теперь поворот здесь в Emp_Official_Detail.Существует имя столбца Function/Wing и Assigned_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 голосов
/ 28 октября 2018

Для решения этой проблемы вам понадобятся еще две таблицы.

Первая таблица для сопоставления сотрудника с функцией / крылом: структура будет простой из 2 столбцов: 1. Код сотрудника 2. Функция / крыло

Вторая таблица для сопоставления Сотрудника с Назначенным Разделом: Структура будет простой 2 столбца: 1. Код Сотрудника 2. Раздел Назначения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...