[BE] 학생 정보 기록시스템 데이터 구조

밀당 허브 학생 정보 조회 기능을 위한 데이터 구조 이해

1. 배경

학생 정보 조회 기능을 기획하기 위해서는 데이터가 어떻게 저장되어 있는지 이해가 필요합니다
현재 데이터는 서로 다른 DB에 분산되어 있어, 이를 고려한 기획이 필수적입니다

2. 데이터 저장 구조

2.1 두 개의 데이터베이스

1.
Mildang DB
기존 사용자(User) 정보가 저장된 공간
사용자를 구분하는 고유값으로 id를 사용
2.
CRM DB
CRM에서 관리하는 학생 관련 정보가 저장된 공간
mildang_id 필드에 사용자의 email 저장
소속팀, 수강과목 등 학생 관련 정보를 Join해서 접근할수 있음

2.2 데이터 연결 구조

CRM DB의 students 테이블의 mildang_id가 Mildang DB의 user email과 연결됨
이 연결을 통해 두 DB의 정보를 함께 활용할 수 있음

3. 기획 시 고려사항

3.1 필터와 검색 기능

필터 가능 항목:
소속팀 (CRM DB의 team/teams 테이블)
수강과목 (CRM DB에서 distinct 값으로 제공)
검색 가능 항목:
이름, 이메일, 연락처, 소속팀, 수강과목 (모두 CRM DB 기반)

3.2 데이터 접근 제약사항

서로 다른 DB의 데이터를 병합해서 필터링하는 것은 불가능
현재 기획된 필터 기능은 CRM DB의 students 정보를 기준으로 이루어져야함
Mildang DB의 정보는 students의 mildang_id(email)를 통해서만 접근 가능

4. 주의사항

User와 Student는 서로 다른 개념으로 접근해야 함
현재 구조(분리된 DB와 분리된 테이블) 에서 단순히 통합은 어려움
기능 기획 시 데이터가 어느 DB에 있는지 항상 고려 필요
데이터 연결 구조를 이해하고 이를 바탕으로 기획해야 함
참고: 학생정보 UID
@1/7/2025, 10:56:00 AM

CRM 테이블 관계도

contract : registration card ⇒ 1:1
registration card : assessments ⇒ 1:1