AWS/MySQL

MySQL 일정공유 앱개발 테이블 설계(회원가입, 내 일정화면, 친구들의 일정목록)

Wave sea 2022. 12. 12. 09:29

회원가입 테이블

 

 

일정화면 테이블

 

 

내가 팔로잉한 친구들의 일정을 가져오는 테이블

 

 

 

테이블을 만들었으면 임의의 더미 데이터로 테스트 해본다.

여기서 데이터는 가지고 있다고 가정하고 아래와 같은 sql문을 작성할 수 있다.

여기서 Foreign Key 설정에 관해 다루지는 않았지만 했다고 가정한다.

 

-- 1. 회원가입 sql을 작성.
insert into user ( email, password, nickname)
values ('abc@naver.com', 'abcd1234', '홍길동');

-- 2. 25개씩 가장 먼 미래의 일정부터 차례로 보여줍니다.
-- 나는 user_id 1번인 사람이다 라고 가정.
select *
from schedule
where user_id = 1
order by date desc
limit 0,25;

-- 3. 일정 작성하는 sql
insert into schedule ( user_id, content, date)
values ( 101 , "일요일에 맛있는 저녁", "2025-07-2 13:25:30") ; 

-- 4. 일정완료 버튼을 누르면, 일정 완료시키는 SQL
update schedule
set is_completed = 1
where id = 1002;

-- 5. 친구들의 일정목록 가져오는 SQL
-- 내 아이디는 1이다라고 가정하고 만든다.
-- 현재시간 기준으로, 지나지 않은 일정을 가져온다.
select s.user_id, s.content, s.date, s.created_at, f.followee_id, s.is_completed
from follow f
join schedule s
on f.followee_id = s.user_id
join user u
on u.id = f.followee_id
where f.follower_id= 1 and s.date > now() 
order by s.date desc 
limit 0,25 ; 

-- 현재시간 이전의 지난 일정을 가져온다.
select s.user_id, s.content, s.date, s.created_at, f.followee_id, s.is_completed
from follow f
join schedule s
on f.followee_id = s.user_id
join user u
on u.id = f.followee_id
where f.follower_id= 1 and s.date < now() 
order by s.date desc 
limit 0,25 ;