열람실 자리관리 어플 질문드립니다

조회수 593회

안녕하세요 열람실 자리관리 어플을 만들고 있는 학생입니다

현재 1번자리 버튼을 만들고

버튼을 누르고 예약완료를 진행하게 되면 mysql 테이블에 좌석번호와 사용자 아이디가 전송되는것 까지 하였습니다.

제가 궁금한 점은

  1. mysql table 에 reservation 이라는 테이블을 만들고 user ID와 seatID를 만들었는데

예약완료하고 서버로 전송된 아이디와 좌석값이 일정 시간(분,시간)이 지나면 삭제될수있도록 할 수 있나요?

2.좌석을 예약하고 서버로 전송한 것 까지는 좋았는데

안드로이드에서 '자리사용 그만 두기 버튼'을 누르면 전송된 데이터가 삭제될 수 있는 기능을 구현하는 방법

3.아이디와 좌석값이 전송되고 예약완료가 되면 버튼 색이 기존색 - > 빨간색으로 변경되거나

버튼 색이 불가능하다면 text 나 이미지를 변경할수있는 조건문이 있을까요??

이 세가지 질문드립니다 ㅠㅠ 구문이 필요하면 구문 올리겠습니다

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 대원칙: 결정권자가 정책을 지정해 주기 전까지는 DB의 컬럼을 하드 삭제하지 마세요. 특히 이 경우처럼 특정 테이블이 로그의 기능을 겸하는 경우에는 row를 막 지우면 안됩니다.

    1. reservation 테이블에 reserve_starts_at 컬럼과 reserve_ends_at 컬럼을 추가하고, 이 테이블에 인서트할 때 reserve_ends_at 값을 reserve_starts_at + (일정시간)으로 만들어서 같이 넣어줍니다. 그리고 이후 (프로그래밍 로직에서) reserve_starts_at <= (지금) < reserve_ends_at인 자리를 '사용 중인 자리'로 보여주도록 처리합니다.
    2. 그러면 "자리 사용 그만두기" 기능은 그냥 해당 자리에 관한 row를 이렇게 업뎃치면 됩니다. reserve_ends_at = (지금) 그러면 1에서 설명한 로직에 의해 해당 자리는 '사용 중인 자리'에 해당 없게 되겠죠.
    3. 안드로이드에서 이걸 어떻게 처리하는지는 잘 모르겠는데... 웹뷰라면 보통은 전체 좌석도를 (사용 여부, 예약 여부 정보 적용해서) 새로 그려줍니다. 버튼 눌린 자리만 업뎃해 주는 건 좋은 방법이 아닐 것 같습니다. 예약이라는 건 예약을 하는 동안에도 다른 예약이 들어오거나 빠지거든요.

    제가 안드로이드를 1도 몰라서... 나머지 세부사항은 다른 분의 답변이 필요합니다. ^^;

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)