PicShare WepApp 데이터베이스 구조 정리

Project Diary/React + MariaDB (PicShare WebApp)

1. ERD

 

2. 데이터 CRUD

 

회원관리
  • 회원가입
const registerMember = (newMember) => {
  kuwazawa_memberDB.push(newMember);
};
  • 회원 정보수정
const updateMemberInfo = (userKey, userInfo) => {
  kuwazawa_memberDB.child(userKey).update(userInfo);
};
  • 회원 탈퇴
const deleteMember = (userKey) => {
  kuwazawa_memberDB.child(userKey).remove();
};
  • 로그인
const loginMember = () => {
  kuwazawa_memberDB.on("value", (snapshot) => {
    const membersObj = snapshot.val();
    const membersArr = Object.entries(membersObj).map(([key, value]) => {
      return { key, ...value };
    });
    dispatch(initMembers(membersArr));
  });
};

 

 

피드관리
  • 피드 작성
const createFeed = (newFeed) => {
  kuwazawa_feedDB.push(newFeed);
};
  • 피드 수정
const updateFeed = (feedKey, feedInfo) => {
  kuwazawa_feedDB.child(feedKey).update(feedInfo);
};
  • 피드 삭제
const deleteFeed = (feedKey) => {
  kuwazawa_feedDB.child(feedKey).remove();
};

 

 

팔로우 / 언팔로우
  • 팔로우 / 언팔로우 토글
const toggleFollow = (userKey, followStatus) => {
  kuwazawa_followDB.child(userKey).update({ follow: followStatus });
};

 

좋아요
  • 좋아요 토글
const toggleLike = (feedKey, userKey, likeStatus) => {
  kuwazawa_likeDB.child(feedKey).child(userKey).update({ liked: likeStatus });
};