| 항목 | 내용 |
|---|---|
| 접속 IP | [HR DB 서버 IP] (담당자에게 문의) |
| 유형 | MariaDB 10.5.27 |
| DB Name | HR |
| 제공 VIEW |
• v_active_users (활성 사용자 상세 정보)• v_user_contacts (활성 사용자 연락처 중심 정보)• v_integration_users (Git/Redmine 사용자 연동 권장 VIEW)• v_integration_departments (Git/Redmine 부서/그룹 연동 권장 VIEW)• v_department_hierarchy (부서 계층 상세 VIEW)
|
v_integration_users와 v_integration_departments 사용을 권장합니다.v_integration_users는 활성 사용자 중 이메일 기준으로 1명 1행만 남기도록 정리한 연동 전용 VIEW입니다.
부서 정보는 유지보수를 쉽게 하기 위해 현재 부서와 상위 부서만 가진 부모 참조형 구조로 제공합니다.
전체 경로나 단계별 부서명은 표시/검증용 v_department_hierarchy에서만 조회하세요.
hr_departments에 저장됩니다.
외부 시스템은 직접 가공하지 말고 v_integration_departments와 v_integration_users를 조회하세요.
| VIEW명 | 용도 | 사용 기준 |
|---|---|---|
v_integration_users |
Git/Redmine 계정 연동 | 계정 생성/갱신처럼 사용자 고유성이 중요한 연동에 사용합니다. username, mail 중복이 없고 부서 계층 컬럼이 포함되어 있습니다. |
v_integration_departments |
Git/Redmine 부서/그룹 연동 | 부서/그룹 목록을 만들 때 사용합니다. department_id, department_name, parent_department_id 중심의 부모 참조형 구조입니다. |
v_department_hierarchy |
부서 계층 상세 조회 | 관리 화면과 동일한 기준으로 최상위부터 현재 부서까지의 계층을 제공합니다. 통계/검증용으로 사용합니다. |
v_active_users |
활성 사용자 상세 조회 | 활성 사용자 전체 목록이 필요할 때 사용합니다. 도메인 중복이 있을 수 있으므로 계정 자동 생성 원천으로는 권장하지 않습니다. |
v_user_contacts |
연락처 중심 조회 | 이메일, 휴대폰, 내선 등 연락처성 정보 조회에 사용합니다. 도메인 중복이 있을 수 있습니다. |
활성 사용자를 이메일 기준으로 중복 제거하고, 부서 계층을 함께 붙인 계정 연동 전용 VIEW입니다.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
username |
VARCHAR | Git/Redmine 로그인 후보 값. 이메일의 @ 앞부분을 소문자로 변환한 값입니다. |
login_id |
VARCHAR(128) | Works 로그인 ID를 소문자로 정규화한 값입니다. |
external_id |
VARCHAR(64) | 외부 시스템에서 사용자 매칭 키로 사용할 수 있는 HR 사용자 ID입니다. |
user_id |
VARCHAR(64) | Works 사용자 고유 ID입니다. |
domain_id |
VARCHAR(16) | Works 도메인 ID입니다. |
mail |
VARCHAR(255) | Redmine 연동용 이메일 컬럼입니다. |
email |
VARCHAR(255) | 사용자 이메일 주소입니다. |
user_name |
VARCHAR(50) | 사용자 이름입니다. |
display_name |
VARCHAR(255) | 표시 이름입니다. 비어 있으면 user_name을 사용합니다. |
redmine_firstname |
VARCHAR(255) | Redmine firstname 매핑 후보 값입니다. |
redmine_lastname |
VARCHAR(50) | Redmine lastname 매핑 후보 값입니다. |
department, dept_org_id |
VARCHAR | 원본 사용자 테이블의 부서명 및 조직 ID입니다. 부서 연동은 아래 계층 컬럼 사용을 권장합니다. |
department_name, department_slug |
VARCHAR | 현재 소속 부서명과 GitLab/Redmine 경로 후보 값입니다. |
parent_department_id, parent_department_name |
VARCHAR | 상위 부서 ID와 이름입니다. 최상위 조직은 비어 있을 수 있습니다. |
root_department_id, root_department_name, site_name |
VARCHAR | 최상위 조직 구분 값입니다. 회사 내 최상위 조직이 여러 개이므로 함께 저장하세요. |
job_title, position |
VARCHAR | 직무/직책 및 직급 정보입니다. 시스템에 따라 비어 있을 수 있습니다. |
mobile, telephone |
VARCHAR | 휴대폰 번호 및 내선 번호입니다. 필요한 업무 범위에서만 사용하세요. |
status |
VARCHAR(32) | 사용자 상태입니다. 이 VIEW는 활성 사용자만 포함합니다. |
external_key |
VARCHAR(128) | 외부 시스템 연동용 키입니다. |
created_at, updated_at |
DATETIME | 생성 및 수정 일시입니다. 증분 동기화 시 updated_at을 활용할 수 있습니다. |
활성 부서를 부모 참조형으로 제공하는 부서/그룹 연동 전용 VIEW입니다. GitLab 그룹/서브그룹 생성과 Redmine 부서 매핑의 기준으로 사용합니다.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
department_id | VARCHAR(64) | 부서 고유 ID입니다. 외부 시스템 매칭 키로 사용합니다. |
department_name | VARCHAR(255) | 현재 부서명입니다. |
department_slug | VARCHAR | 현재 부서명 기반 시스템 경로 후보 값입니다. |
parent_department_id | VARCHAR(64) | 상위 부서 ID입니다. 최상위 조직은 비어 있습니다. |
parent_department_name | VARCHAR(255) | 상위 부서명입니다. |
parent_department_slug | VARCHAR(255) | 상위 부서의 시스템 경로 후보 값입니다. |
root_department_id, root_department_name | VARCHAR | 최상위 조직 ID와 이름입니다. |
site_name | VARCHAR(255) | 최상위 조직명 별칭입니다. Git/Redmine 그룹의 최상위 구분으로 사용할 수 있습니다. |
source_org_unit_id | VARCHAR(64) | 원본 org_units.org_unit_id입니다. 원본 추적과 사용자 매핑에 사용합니다. |
source_parent_org_unit_id | VARCHAR(64) | 원본 상위 조직 ID입니다. |
direct_active_user_count | INT | 해당 부서에 직접 소속된 활성 사용자 수입니다. 하위 부서 인원은 포함하지 않습니다. |
domain_id, external_key, source_status | VARCHAR | 원본 도메인, 외부 연동 키, 원본 조직 상태입니다. |
active, sort_order, updated_at, synced_at | 기타 | 연동 사용 여부, 정렬 순서, 수정/동기화 일시입니다. |
전체 경로, 경로 slug, 단계별 부서명, leaf 여부 등 사람이 보기 좋은 계층 정보를 제공합니다. 외부 시스템 연동 기준은 v_integration_departments를 우선 사용하세요.
활성 사용자 전체를 조회하는 VIEW입니다. 도메인별 중복 사용자가 있을 수 있으므로 고유 계정 연동에는 v_integration_users를 사용하세요.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
id | BIGINT(20) | 내부 식별자입니다. |
user_id | VARCHAR(64) | Works 사용자 고유 ID입니다. |
domain_id | VARCHAR(16) | Works 도메인 ID입니다. |
login_id | VARCHAR(128) | 사용자 로그인 계정입니다. |
user_name | VARCHAR(50) | 사용자 이름입니다. |
display_name | VARCHAR(255) | 표시 이름입니다. |
email | VARCHAR(255) | 사용자 이메일 주소입니다. |
department, dept_org_id | VARCHAR | 부서명 및 조직 ID입니다. |
job_title, position | VARCHAR | 직무/직책 및 직급 정보입니다. |
mobile, telephone | VARCHAR | 휴대폰 번호 및 내선 번호입니다. |
status | VARCHAR(32) | 사용자 상태입니다. |
external_key | VARCHAR(128) | 외부 시스템 연동용 키입니다. |
created_at, updated_at | DATETIME | 생성 및 수정 일시입니다. |
active | TINYINT(1) | 활성화 여부입니다. 이 VIEW는 active = 1 데이터만 포함합니다. |
활성 사용자의 연락처와 기본 프로필을 조회하는 VIEW입니다.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
user_id | VARCHAR(64) | Works 사용자 고유 ID입니다. |
domain_id | VARCHAR(16) | Works 도메인 ID입니다. |
login_id | VARCHAR(128) | 사용자 로그인 계정입니다. |
user_name | VARCHAR(50) | 사용자 이름입니다. |
display_name | VARCHAR(255) | 표시 이름입니다. |
email | VARCHAR(255) | 사용자 이메일 주소입니다. |
mobile, telephone | VARCHAR | 휴대폰 번호 및 내선 번호입니다. |
department, dept_org_id | VARCHAR | 부서명 및 조직 ID입니다. |
job_title, position | VARCHAR | 직무/직책 및 직급 정보입니다. |
status | VARCHAR(32) | 사용자 상태입니다. |
external_key | VARCHAR(128) | 외부 시스템 연동용 키입니다. |
created_at, updated_at | DATETIME | 생성 및 수정 일시입니다. |
active | TINYINT(1) | 활성화 여부입니다. 이 VIEW는 active = 1 데이터만 포함합니다. |
조직/부서 구조를 관리하는 테이블입니다.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
org_unit_id |
VARCHAR(64) | 조직의 고유 ID (Primary Key) |
domain_id |
VARCHAR(16) | Works 도메인 ID |
name |
VARCHAR(255) | 부서 또는 팀 이름 (예: IT Infra팀) |
parent_org_id |
VARCHAR(64) | 상위 조직의 org_unit_id |
path |
TEXT | 조직의 전체 경로 (계층 구조) |
external_key |
VARCHAR(128) | 외부 시스템 연동용 키 (API 연동) |
order_index |
INT(11) | 조직 정렬 순서 |
status |
VARCHAR(32) | 조직 상태 |
created_at |
DATETIME | 생성 일시 |
updated_at |
DATETIME | 수정 일시 |
active |
TINYINT(1) | 활성화 여부 (1: 활성, 0: 비활성) |
직원 정보를 관리하는 핵심 테이블입니다.
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
id |
BIGINT(20) | Auto Increment Primary Key |
user_id |
VARCHAR(64) | 사용자의 고유 ID (Unique) |
domain_id |
VARCHAR(16) | Works 도메인 ID |
login_id |
VARCHAR(128) | 사용자 로그인 계정 |
user_name |
VARCHAR(50) | 사용자 이름 |
department |
VARCHAR(100) | 부서명 |
display_name |
VARCHAR(255) | Works에 표시되는 사용자 이름 (예: 홍길동) |
email |
VARCHAR(255) | 사용자 이메일 주소 |
dept_org_id |
VARCHAR(64) | 사용자가 속한 조직의 org_unit_id |
job_title |
VARCHAR(128) | 직무/직책 |
position |
VARCHAR(128) | 사용자의 직급 (예: 선임, 책임, 수석) |
mobile |
VARCHAR(32) | 휴대폰 번호 |
telephone |
VARCHAR(32) | 사내 내선 번호 |
status |
VARCHAR(32) | 사용자 상태 |
external_key |
VARCHAR(128) | 외부 시스템 연동용 키 (API 연동) |
created_at |
DATETIME | 생성 일시 |
updated_at |
DATETIME | 수정 일시 |
active |
TINYINT(1) | 계정 활성화 여부 (1: 활성, 0: 비활성) |
SELECT department_id, department_name, department_slug,
parent_department_id, parent_department_name, site_name
FROM v_integration_departments
ORDER BY site_name, parent_department_name, department_name;
SELECT user_id, login_id, user_name, display_name, email, position, dept_org_id
FROM v_active_users
ORDER BY user_name;
SELECT username, mail, redmine_firstname, redmine_lastname,
department_id, department_name, parent_department_id,
site_name, external_id, updated_at
FROM v_integration_users
ORDER BY username;
SELECT department_id, department_name, department_slug, parent_department_id
FROM v_integration_departments
ORDER BY parent_department_id, department_slug;
SELECT username, mail, external_id, department_id, updated_at
FROM v_integration_users
WHERE updated_at >= 'YYYY-MM-DD HH:MM:SS'
ORDER BY updated_at;
SELECT u.user_name, u.display_name, u.position,
d.department_name, d.parent_department_name, d.site_name
FROM v_active_users u
LEFT JOIN v_integration_departments d ON u.dept_org_id = d.source_org_unit_id
ORDER BY d.site_name, d.parent_department_name, d.department_name, u.display_name;
v_integration_users를 기준으로 구현하세요.v_integration_departments를 기준으로 구현하세요.site_name 또는 root_department_name을 함께 저장하세요.v_active_users, v_user_contacts는 활성 사용자 전체 조회용이며 도메인 중복이 포함될 수 있습니다.최종 업데이트: 2026-05-15 | HR Database v2.3