본문 바로가기
Project/Modeling Project

04. airbnb 테이블 SQL문 작성 (끝)

by 개발개발빈이 2022. 5. 25.

○ SQL문 업무분장

    - SQL문은 테이블 정의서를 만든 사람이 책임지고 만드는것으로ㅎㅎ

    - 내가 맡은 테이블

       ① 숙소정보(airbnb_inn)

       ② 숙소호스트상세정보(hosi_inn)

       ③ 숙소예약(booking_inn)

 

○ SQL문 작성

    - 작성해야 할 SQL문은 테이블 생성 + 행 추가(3줄 정도)

 

       ① 숙소정보(airbnb_inn)

-- airbnb_inn 테이블 생성(숙소정보)

create table airbnb_inn(
    inn_code        char(12)        not null            -- 숙소코드: 지역코드+일련번호
    ,inn_name       varchar2(200)   not null            -- 숙소이름
    ,inn_info       varchar2(4000)                      -- 숙소정보설명
    ,inn_option     char(5)         not null    check(inn_option in ('op001', 'op002', 'op003'))        -- 레지던스(op001), 공동주택(op002), 로프트(op003)
    ,inn_type       char(5)         not null    check(inn_type in ('ty001', 'ty002', 'ty003'))          -- 공간전체(ty001), 개인실(ty002), 다인실(ty003)
    ,inn_maxpeople  number(2,0)     not null    check(inn_maxpeople between 1 and 16)                   -- 최대숙박인원 (최소1명, 최대16명)
    ,inn_price      number(10,0)    not null            -- 숙소 1박당 가격 
    ,inn_thumb      varchar2(200)   not null            -- 숙소 썸네일사진
    ,inn_image      varchar2(200)   not null            -- 숙소 이미지
    ,inn_checkin    char(5)         default '15:00'     -- 체크인 시간
    ,inn_checkout   char(5)         default '11:00'     -- 체크아웃 시간
    ,inn_amenity    varchar2(1000)                      -- 숙소 편의시설
    ,inn_rule       varchar2(1000)                      -- 숙소 규칙
    ,primary key(inn_code)                              
);


-- airbnb_inn 테이블 행 추가

insert into airbnb_inn (inn_code, inn_name, 
                        inn_info, 
                        inn_option, inn_type, inn_maxpeople, inn_price,     
                        inn_thumb, inn_image, 
                        inn_checkin, inn_checkout, inn_amenity, inn_rule)
values ('JJ00023', '전주 객리단길?연가STAY',
        '고즈넉한 느낌의 전통 한옥, 한국 고유의 고풍스러움과 감성 가득한 숙소입니다.',
        'op002', 'ty002', 2, 115600, 
        'JJ00023_01.JPG', 'JJ00001_02.JPG', 
        '16:00', '11:00', '헤어드라이어, 샴푸', '흡연불가, 반려동물불가, 셀프체크인');

insert into airbnb_inn (inn_code, inn_name, 
                        inn_info, 
                        inn_option, inn_type, inn_maxpeople, inn_price,     
                        inn_thumb, inn_image, 
                        inn_checkin, inn_checkout, inn_amenity, inn_rule)
values ('YP00004', '휘게양평♡캠핑가능♡',
        '중미산, 유명산 근처로 자연을 맘껏 느끼면서 힐링할 수 있는 숙소 휘게양평 입니다 :D',	
        'op001', 'ty001', 3, 155000, 
        'YP00004_01.JPG', 'YP00001_02.JPG', 
        '15:00', '11:00', '편의시설X', '흡연가능, 반려동물가능, 셀프체크인');

insert into airbnb_inn (inn_code, inn_name, 
                        inn_info, 
                        inn_option, inn_type, inn_maxpeople, inn_price,     
                        inn_thumb, inn_image, 
                        inn_checkin, inn_checkout, inn_amenity, inn_rule)
values ('JE01276',	'[애월] *자파리하우스*(도미토리)',	
        '커플룸(2인실)과 남,여 6인실의 도미토리가 있습니다 직접구운빵, 까수엘라, 쉐퍼드파이, 쌀국수 등 특별한 조식 랜덤으로 제공!!',	
        'op003', 'ty003', 6, 25500, 
        'JE01276_01.JPG', 'JE01276_02.JPG', 
        '16:00', '11:00', '헤어드라이어, TV, 세탁기', '흡연불가, 반려동물불가, 셀프체크인');

insert into airbnb_inn (inn_code, inn_name, 
                        inn_info, 
                        inn_option, inn_type, inn_maxpeople, inn_price,     
                        inn_thumb, inn_image, 
                        inn_amenity, inn_rule)
values ('BU00001', '??라탄 zip?? ?감성 영화관',	
        '서면역 8번출구에서 도보 1분거리에 있어요.깨끗하고 이쁜 카페같은 따뜻한 휴식공간을 만들어 보았어요.',	
        'op001', 'ty001', 2, 107000, 
        'BU00001_01.JPG', 'BU00001_02.JPG', 
        '헤어드라이어, 샴푸, TV, 옷걸이', '흡연불가, 반려동물불가, 셀프체크인');

insert into airbnb_inn (inn_code, inn_name, 
                        inn_info, 
                        inn_option, inn_type, inn_maxpeople, inn_price,     
                        inn_thumb, inn_image, 
                        inn_amenity, inn_rule)
values ('SC00003', '영랑호와 설악산이 보이는 unnamed',	
        '아무 생각 없이 산멍, 물멍하게 되는 곳,문을 열고 들어오면 커더란 창문너머 계절마다 바뀌는 아름다운 설악산이과영랑호의 아름다은 모습을 즐길 수 있습니다.',	
        'op002', 'ty001', 2, 219000, 
        'SC00003_01.JPG', 'SC00003_02.JPG', 
        '헤어드라이어, 샴푸, 컨디셔너, TV', '흡연불가, 반려동물가능, 셀프체크인');

 

       ② 숙소호스트상세정보(hosi_inn)

          - 3줄 정도만 추가하면 되지만, 숙소코드 FK로 쓰이는 테이블이 많아

            원활한 진행을 위해 시나리오에 있는 행은 모두 추가함

--host_inn 테이블 생성(숙소호스트 회원정보)

create table host_inn(
    mem_id          varchar2(20)    not null   -- 회원아이디
    ,inn_code       char(12)        not null   -- 숙소코드
    ,inn_adr1       varchar2(20)    not null   -- 숙소주소 (시/도)
    ,inn_adr2       varchar2(50)    not null   -- 숙소주소 (시/군/구)
    ,inn_adr3       varchar2(100)              -- 숙소상세주소 (선택사항)
    ,inn_superhost  char(1)         default 'N'   check(inn_superhost in ('Y', 'N')) 
    ,inn_bankacct   varchar2(20)    not null   -- 은행 계좌명 (은행명+계좌번호)
    ,primary key(inn_code)
    ,foreign key(inn_code) references airbnb_inn(inn_code)
    ,foreign key(mem_id)   references airbnb_member(mem_id)
);


--host_inn 테이블 행 추가

insert into host_inn(mem_id, inn_code, inn_adr1, inn_adr2, inn_adr3, 
inn_superhost, inn_bankacct)
values('jun5844', 'JJ00023', '전라북도', '전주시', '한옥마을3길 22', 
'Y', '농협 654-688');

insert into host_inn(mem_id, inn_code, inn_adr1, inn_adr2, inn_adr3, 
inn_superhost, inn_bankacct)
values('jun5844', 'YP00004', '경기도', '양평군', '양평로 1', 
'Y', '농협 654-688');

insert into host_inn(mem_id, inn_code, inn_adr1, inn_adr2, inn_adr3, inn_bankacct)
values('mu1111', 'JE01276', '제주도', '제주시', '애월로 334', '하나 234-6767');

insert into host_inn(mem_id, inn_code, inn_adr1, inn_adr2, inn_adr3, 
inn_superhost, inn_bankacct)
values('mu1234', 'BU00001', '부산시', '부산진구', '부산1길 13', 
'Y', '국민 554-9841');

insert into host_inn(mem_id, inn_code, inn_adr1, inn_adr2, inn_adr3, 
inn_superhost, inn_bankacct)
values('sp5585', 'SC00003', '강원도', '속초시', '주문진로 28', 
'N', '신한 123-651');

 

       ③ 숙소예약(booking_inn)

-- booking_inn 테이블 생성(숙소예약정보)

create table booking_inn(
    mem_id          varchar2(20)    not null        -- 예약자 회원아이디
    ,inn_code       char(12)        not null        -- 숙소코드
    ,inn_indate     date            not null        -- 숙소 입실날짜
    ,inn_outdate    date            not null        -- 숙소 퇴실날짜
    ,inn_stay       number(5)                       -- 총 숙박일 (inn_outdate - inn_indate)
    ,inn_guestnum   varchar2(30)                    -- 숙박객 수 
    ,foreign key(inn_code) references airbnb_inn(inn_code)  
    ,foreign key(mem_id)   references airbnb_member(mem_id)
);


-- booking_inn 테이블 행추가

insert into booking_inn(mem_id, inn_code, inn_indate, inn_outdate, inn_guestnum)
values('han123', 'BU00001', '2022-04-15', '2022-04-17',	'성인 2명');

insert into booking_inn(mem_id, inn_code, inn_indate, inn_outdate, inn_guestnum)
values('oh1234', 'JJ00023', '2022-06-29', '2022-06-30', '성인 1명, 어린이 3명');

insert into booking_inn(mem_id, inn_code, inn_indate, inn_outdate, inn_guestnum)
values('ko1234', 'YP00004', '2022-10-01', '2022-10-10', '성인 2명');

insert into booking_inn(mem_id, inn_code, inn_indate, inn_outdate, inn_guestnum)
values('mu1234', 'SC00003', '2022-07-27', '2022-07-29', '성인 5명');


-- booking_inn 테이블 inn_stay행 업데이트

update booking_inn set inn_stay=inn_outdate-inn_indate;

 

○ 모델링 프로젝트 마무리

    - 이렇게 작성된 조원들의 SQL문을 모아서 제출하고, 모델링 프로젝트는 끝

    - 오랜만에 하는 조모임이라서 걱정했는데, 조원 분들 다들 성실하셔서 너무 원활하게 잘 끝냈다

    - 그리고, 진짜 테이블 이름 칼럼명 짓는거 너무 힘들었음ㅋㅋㅋ

댓글