minlog
article thumbnail

 

채팅 기능과 연관되어 있는 알림기능과 파일도 분석하고 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 저장된 날짜/시간  




profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!