Project/Todo

[기획 및 설계] 프로젝트 테이블 설계 및 예상 API

lakelight 2022. 7. 7. 22:35
728x90
반응형

테이블 설계

● Member Table

Field Type Info
member_id UUID Primary Key
userID String  
userPW String Encrypt with Spring Security
todo_id Long Foreign Key (1:N)
memo_id Long Foreign Key (1:N)
member_id 필드는 회원을 식별하기 위한 필드로 UUID를 무작위로 생성해서 자동으로 입력을 할 것입니다.
userPW는 Spring Security를 사용하여 암호화 하고 로그인 시에도 복호화 하여 로그인을 진행할 것입니다.
todo_id memo_id는 member->todo, member->memo, todo->member, memo->member 객체처럼 이동하기 위해 외래키로 설정해주고 각각 1:N 으로 매핑을 해주었습니다.

 

Todo Table

Field Type Info
todo_id Long Primary Key
title String  
content String  
deadline_date String format = yyyy/MM/dd
deadline_time String format = HH:MM
create_time LocalDateTime  
member_id UUID Foreign Key (N:1)
deadline_datedeadline_time으로 deadline을 나누어서 date만 받을 경우date와 time둘다 받는 경우로 입력을 받을 수 있습니다. create_time은 todo를 생성한 날짜와 시간으로 추후 deadline_date 또는 create_time을 통해서 todo를 정렬할 생각입니다. 항상 member에 해당하는 todo만을 조회해야하기 때문에 member_id외래키로 설정하였습니다.

 

Memo Table

Field Type Info
memo_id Long Primary Key
content String  
create_time String  
member_id UUID Foreign Key (N:1)
memo는 그 날의 메모를 해야될 내용을 저장할 수 있는 테이블로 create_time을 통해서 그날의 메모를 구별해서 조회할 것 입니다. 그리고 member_id를 통해서 member에 memo만을 조회해야하기 때문에 외래키로 설정하였습니다.

Application Programming Interface 구상

Member API

  • 회원 저장
    • 회원 가입
    • 아이디 중복 확인
    • 비밀번호 제약조건 확인

 

  • 회원 조회
    • 전체 멤버 조회
    • userID에 따른 멤버 조회

 

  • 회원 관리
    • 로그인
    • 비밀번호 변경

 

 Todo API

  • 투두 저장
    • title, deadline_date, deadline_time, content 에 따른 투두 작성

 

  • 투두 조회 (정렬 방식은 추후 결정)
    • member_id에 따른 조회
    • deadline_date에 따른 조회
    • content 키워드에 따른 조회

 

  • 투두 관리
    • 투두 수정
    • 투두 삭제

 

  • 투두 권한
    • 투두 수정, 삭제 권한 확인

 

 Memo API

  • 메모 저장
    • 메모 작성

 

  • 메모 조회
    • member_id에 따른 조회
    • create_time에 따른 조회
    • LocalDateTime.now()에 따른 조회

 

  • 메모 관리
    • 메모 수정
    • 메모 삭제

 

  • 메모 권한
    • 메모 수정, 삭제 권한 확인
728x90
반응형