채팅 기능과 연관되어 있는 알림기능과 파일도 분석하고 DB 설계작업을 했다.
1. 알림 기능 분석
1-1. 기본기능
- 유저 각자의 알림이 존재한다.
- 전달되는 메시지가 존재한다. ( 채팅 , 주문 현황에 대해 알림이 전송된다.)
- 그 메시지와 연관된 사람이 존재한다.
1-2. 추가기능
- 알림을 선택시 해당 페이지로 이동할 수 있다.
- 전체 알림을 확인 할 수 있다.
- 메일로 알림을 확인 할 수 있다.
1-3. 필요한 내용
받는 사람 / 보낸사람 / 알림 숫자 / 알림 구분 (어떤 알림인지) / 메시지 / 이동하는 페이지 / 알림 확인여부 / 받는사람 타입 ( 주문의경우 , 주문받는 사람인지 주문하는 사람인지 구분)
- 받는 사람 : 본인
- 보낸사람 : 닉네임 (입장) 일반 유저 : 작가 / 작가 유저 : 주문자
- 알림 구분 :
메시지확인, 주문완료 , 작업 기간완료 (enum) - 이동하는 페이지 : 경로
메시지 ( 마이페이지 > 메시지 > 상세 메시지) ex) /mypage/chat/view?no=1 (pk번호)주문완료 / 작업기간완료 (마이페이지 > 주문내역 > 상세주문내역) ex) /mypage/order/view?no=1 (pk번호)
- 알림 확인 여부 ( true / false )
확인 되면 알림 리스트 에서 삭제 및 숫자 변경- 방법: 해당 페이지 진입 시 : 알림 조회> 알림 구분과 일치하고 pk 가 일치하는 알림이 false 일시 true 처리
알림 부분은 마이페이지도 연관이 있어,
마이페이지 담당자 분과 프론트 담당자 분의 피트백 후 알림구분은 4단계로 확정되었다.
[공통] 메시지 / 작업도착 (의뢰신청) / 작업중 (의뢰진행 중) / 작업 완료
메시지 / (처리완료 ) /작품전달 (작품 수령 ) / 작업 취소 (의뢰취소)
→ 받는사람 identity 에 따라서 메시지 한글 명칭만 다르게
2. 알림 DB 설계 - Alerts
명칭 | 상세 데이터 값 | 명칭 내용 | 기타 |
alert_id | bigint | 고유번호 | pk |
member_id | bigint | 받는사람 | fk |
alert_writer | varchar(10) | 보낸사람 닉네임 | |
alert_identity | varchar(10) | ||
alert_type | varchar(15) | 알림구분 | enum - MESSAGE (메시지) / APPLICATION (신청) / FINISH(완료) / DELIVERY (전달)/ CANCEL(취소) |
alert_path | bigint | 이동하는 페이지 | 각 테이블 fk번호 |
alert_status | tinyint(1) / default 0 | 알림 확인여부 | |
alert_count | int / default 0 | 알림 숫자 | |
alert_date | datetime | 생성날짜 |
3. 파일 기능 분석
3-1. 기본기능
- 상품 게시판, 대화 게시판에서 파일을 사용한다.
- 상품 : 하나의 게시판에는 여러 파일이 들어갈 수 있다. 게시판1 : 파일 n
- 대화 : 하나의 메시지에는 1:1 하나의 파일이 전송
- 파일이 같은 이름의 파일이 업로드될 수 있다. (실제 데이터는 uuid 를 추가한 명칭으로 저장.)
3-2. 필요 내용
실제이름 file_origin_name, 저장된파일이름 file_name (uuid 가 추가), 파일 타입 (png,jpg.. 등 ), 저장되는 파일 경로 file_path , 어떤 게시판에서 사용되는지 file_use
4. 파일 DB 설계 - File
2-1 ) File (1:n)
명칭 | 값 | 명칭 이름 | 기타 |
file_id | bigint | 고유 번호 | pk |
file_path | varchar(10) | 사용 하는 테이블 | CHAT,REVIEW,PROFILE,PRODUCT |
file_type_id | bigint | file_path 의 고유번호 | |
file_origin_name | varchar(50) | 실제이름 | |
file_name | varchar(50) | 저장된 파일이름 | |
file_date | datetime | 저장된 날짜/시간 |
'Project · Etc > Project' 카테고리의 다른 글
[ Project · ArtMarket ] X-Frame-Options 트러블 슈팅 (0) | 2023.10.14 |
---|---|
[ Project · ArtMarket ] 채팅 기능 사용 기술 정리 - WebSocket · Stomp · sockJs (0) | 2023.10.14 |
[ Project · ArtMarket ] 채팅 기능 분석 및 DB 설계 (0) | 2023.10.05 |
[ Project · Travel Road ] summernote 무료 에디터 사용하기 (0) | 2023.09.04 |
[ Project ] AWS 가입 및 프로젝트 배포하기 (0) | 2023.08.21 |