군침이 싹 도는 코딩

MySQL 일정 공유 앱 개발 본문

Database/MySQL

MySQL 일정 공유 앱 개발

mugoori 2022. 12. 9. 17:46

# 3장의 화면 기획서를 보고 이것을 개발해보자

 

 

 

 

# 화면기획서를 보고 3개의 테이블을 만들어보았다

이제 화면기획서를 보고 조건에 따라서 SQL 문을 작성해보자

 

 

 

 

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

# insert를 이용해 회원가입하는 SQL을 작성한다

 

 

 

 

-- 2. 내 일정목록 나는 user_id 1번인 사람이다 라고 가정.
select content,date,is_completed
from schedule
where user_id = 1
order by date desc
limit 0,25;

# 내가 1번이라고 가정하고 일정목록을 불러오는 SQL 을 작성하였다

1. 내 할일 내용, 완료할 기한 , 완료 여부를 표시
2. 완료 여부는 체크 박스
3. 25개씩 가장 먼 미래의 일정부터 차례대로

먼저 스케줄 컬럼을 보고 content , date, is_completed를 셀렉트해준다

그 후 where 절로 1번에 해당하는 아이디를 가진것을 지정

오더 바이로 날짜순으로 정렬한 뒤

25개까지 출력하도록 설정한다.

 

 

 

 

-- 3. 일정 작성하는 SQL
insert into schedule (user_id,content,date)
values (101,'일요일에 맛있는 저녁','2022-12-11 18:30');

# 일정을 작성하는 SQL 을 만든다

인설트를 이용해서 테이블 이름과 컬럼을 넣고

벨류값을 넣어주면 된다.

 

 

 

 

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

# 일정 완료버튼을 누르면 일정 완료를 시키는 체크박스 기능을 만든다

이것은 업데이트로 만들어주면 된다.

 

 

 

 

 

 

-- 5. 친구들의 일정을 가져오는 SQL
--  내 아이디는 1이다라고 가정하고 만든다.
select u.nickname,s.user_id,s.content,s.date,s.is_completed
from follow f
join schedule s
on s.user_id = f.followee_id
join user u
on u.id = s.user_id
where f.follower_id = 1 and s.date > now() 
order by s.date desc
limit 0,25 ;

# 위 화면기획서에서 필요한 것은 사람이름,날짜,할일,체크박스가 필요하다

이것을 모두 가져오기 위해서 follow, schedule, user, 3가지의 테이블을 조인해준다

그 후 where 절을 사용해 자신의 아이디 1을 가정해주고 그것을 현재시간과 비교해준다

오더바이를 통해 스케쥴 데이터로 내림차순 정렬해준다

마지막으로 리미트로 25개까지 가져온다.