From cd3ff32f9f2a644efa26f0ae83e7badf688b876d Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 19 Sep 2025 19:17:33 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20H2=20-=20MySQL=20=EC=8A=A4=ED=82=A4?= =?UTF-8?q?=EB=A7=88=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/schema/schema-h2.sql | 60 ++++----- src/main/resources/schema/schema-mysql.sql | 135 +++++++++++---------- 2 files changed, 103 insertions(+), 92 deletions(-) diff --git a/src/main/resources/schema/schema-h2.sql b/src/main/resources/schema/schema-h2.sql index ff0d4bf3..65085eac 100644 --- a/src/main/resources/schema/schema-h2.sql +++ b/src/main/resources/schema/schema-h2.sql @@ -9,18 +9,18 @@ create table if not exists region ( ); create table if not exists store( - id bigint primary key, - name varchar(20) not null, - address varchar(100) not null, - contact varchar(50) not null, - business_reg_num varchar(12) not null, - region_code varchar(10) not null, - status varchar(20) not null, + id bigint primary key, + name varchar(20) not null, + address varchar(100) not null, + contact varchar(50) not null, + business_reg_num varchar(12) not null, + region_code varchar(10) not null, + status varchar(20) not null, - created_at timestamp not null, - created_by bigint not null, - updated_at timestamp not null, - updated_by bigint not null, + created_at timestamp not null, + created_by bigint not null, + updated_at timestamp not null, + updated_by bigint not null, constraint uk_store__name unique (name), constraint uk_store__contact unique (contact), @@ -30,17 +30,17 @@ create table if not exists store( ); create table if not exists users( - id bigint primary key, - name varchar(50) not null, - email varchar(255) not null, - password varchar(255) not null, - phone varchar(20) not null, - region_code varchar(10) null, - status varchar(20) not null, - created_at timestamp not null, - created_by bigint not null, - updated_at timestamp not null, - updated_by bigint not null, + id bigint primary key, + name varchar(50) not null, + email varchar(255) not null, + password varchar(255) not null, + phone varchar(20) not null, + region_code varchar(10) null, + status varchar(20) not null, + created_at datetime(6) not null, + created_by bigint not null, + updated_at datetime(6) not null, + updated_by bigint not null, constraint uk__users_email unique (email), constraint uk__users_phone unique (phone), @@ -48,14 +48,14 @@ create table if not exists users( ); create table if not exists user_status_history( - id bigint primary key, - user_id bigint not null, - status varchar(20) not null, - reason varchar(255) not null, - created_at timestamp not null, - created_by bigint not null, - updated_at timestamp not null, - updated_by bigint not null, + id bigint primary key, + user_id bigint not null, + status varchar(20) not null, + reason varchar(255) not null, + created_at datetime(6) not null, + created_by bigint not null, + updated_at datetime(6) not null, + updated_by bigint not null, constraint fk__user_status_history_user_id foreign key (user_id) references users (id) ); diff --git a/src/main/resources/schema/schema-mysql.sql b/src/main/resources/schema/schema-mysql.sql index 54d4d19d..1d2f37bd 100644 --- a/src/main/resources/schema/schema-mysql.sql +++ b/src/main/resources/schema/schema-mysql.sql @@ -2,35 +2,45 @@ create table if not exists region ( code varchar(10) primary key, sido_code varchar(2) not null, sigungu_code varchar(3) not null, - dong_code varchar(5) not null , sido_name varchar(20) not null, sigungu_name varchar(20) not null, - dong_name varchar(20) not null + + constraint uk_region__sido_sigungu_code unique (sido_code, sigungu_code) ); -create table if not exists members -( - member_id bigint primary key, - email varchar(255) not null, - name varchar(255) not null, - password varchar(255) not null, - role varchar(20) not null, - created_at datetime(6) null, - last_modified_at datetime(6) null +create table if not exists store( + id bigint primary key, + name varchar(20) not null, + address varchar(100) not null, + contact varchar(50) not null, + business_reg_num varchar(12) not null, + region_code varchar(10) not null, + status varchar(20) not null, + + created_at datetime(6) not null, + created_by bigint not null, + updated_at datetime(6) not null, + updated_by bigint not null, + + constraint uk_store__name unique (name), + constraint uk_store__contact unique (contact), + constraint uk_store__address unique (address), + constraint uk_store__business_reg_num unique (business_reg_num), + constraint fk_store__region_code foreign key (region_code) references region (code) ); create table if not exists users( - id bigint primary key, - name varchar(50) not null, - email varchar(255) not null, - password varchar(255) not null, - phone varchar(20) not null, - region_code varchar(10) not null, - status varchar(20) not null, - created_at datetime(6) not null, - created_by bigint not null, - updated_at datetime(6) not null, - updated_by bigint not null, + id bigint primary key, + name varchar(50) not null, + email varchar(255) not null, + password varchar(255) not null, + phone varchar(20) not null, + region_code varchar(10) null, + status varchar(20) not null, + created_at datetime(6) not null, + created_by bigint not null, + updated_at datetime(6) not null, + updated_by bigint not null, constraint uk__users_email unique (email), constraint uk__users_phone unique (phone), @@ -56,18 +66,29 @@ create table if not exists admin( password varchar(255) not null, name varchar(20) not null, phone varchar(20) not null, + type varchar(20) not null, + store_id bigint null, permission_level varchar(20) not null, created_at datetime(6) not null, created_by bigint not null, updated_at datetime(6) not null, - updated_by bigint not null + updated_by bigint not null, + + constraint uk_admin__account unique (account), + constraint uk_admin__phone unique (phone), + constraint chk_admin__type check (type in ('HQ', 'STORE')), + constraint chk_admin__store_id check ( + (type = 'HQ' AND store_id IS NULL) OR + (type = 'STORE' AND store_id IS NOT NULL) + ), + constraint fk_admin__store_id foreign key (store_id) references store (id) ); create table if not exists login_history( id bigint primary key, principal_id bigint not null, principal_type varchar(20) not null, - success boolean not null, + success tinyint(1) not null, ip_address varchar(45) not null, user_agent varchar(255) not null, created_at datetime(6) not null @@ -85,36 +106,33 @@ create table if not exists theme ( available_minutes smallint not null, expected_minutes_from smallint not null, expected_minutes_to smallint not null, - is_open tinyint(1) not null, + is_active tinyint(1) not null, created_at datetime(6) not null, created_by bigint not null, updated_at datetime(6) not null, - updated_by bigint not null, - - constraint fk_theme__created_by foreign key (created_by) references members (member_id), - constraint fk_theme__updated_by foreign key (updated_by) references members (member_id) + updated_by bigint not null ); create table if not exists schedule ( - id bigint primary key, - date date not null, - time time not null, - theme_id bigint not null, - status varchar(30) not null, - created_at datetime(6) not null, - created_by bigint not null, - updated_at datetime(6) not null, - updated_by bigint not null, + id bigint primary key, + date date not null, + time time not null, + store_id bigint not null, + theme_id bigint not null, + status varchar(30) not null, + created_at datetime(6) not null, + created_by bigint not null, + updated_at datetime(6) not null, + updated_by bigint not null, - constraint uk_schedule__date_time_theme_id unique (date, time, theme_id), - constraint fk_schedule__created_by foreign key (created_by) references members (member_id), - constraint fk_schedule__updated_by foreign key (updated_by) references members (member_id), + constraint uk_schedule__store_id_date_time_theme_id unique (store_id, date, time, theme_id), + constraint fk_schedule__store_id foreign key (store_id) references store (id), constraint fk_schedule__theme_id foreign key (theme_id) references theme (id) ); create table if not exists reservation ( id bigint primary key, - member_id bigint not null, + user_id bigint not null, schedule_id bigint not null, reserver_name varchar(30) not null, reserver_contact varchar(30) not null, @@ -126,7 +144,7 @@ create table if not exists reservation ( updated_at datetime(6) not null, updated_by bigint not null, - constraint fk_reservation__member_id foreign key (member_id) references members (member_id), + constraint fk_reservation__user_id foreign key (user_id) references users (id), constraint fk_reservation__schedule_id foreign key (schedule_id) references schedule (id) ); @@ -137,13 +155,12 @@ create table if not exists canceled_reservation ( cancel_reason varchar(50) not null, canceled_at datetime(6) not null, status varchar(30) not null, + constraint uk_canceled_reservations__reservation_id unique (reservation_id), - constraint fk_canceled_reservations__reservation_id foreign key (reservation_id) references reservation (id), - constraint fk_canceled_reservations__canceled_by foreign key (canceled_by) references members (member_id) + constraint fk_canceled_reservations__reservation_id foreign key (reservation_id) references reservation (id) ); -create table if not exists payment -( +create table if not exists payment ( id bigint primary key, reservation_id bigint not null, type varchar(20) not null, @@ -153,14 +170,13 @@ create table if not exists payment total_amount integer not null, status varchar(20) not null, requested_at datetime(6) not null, - approved_at datetime(6), + approved_at datetime(6) not null, constraint uk_payment__reservationId unique (reservation_id), - constraint fk_payment__reservationId foreign key (reservation_id) references reservations (reservation_id) + constraint fk_payment__reservationId foreign key (reservation_id) references reservation (id) ); -create table if not exists payment_detail -( +create table if not exists payment_detail( id bigint primary key, payment_id bigint not null unique, supplied_amount integer not null, @@ -169,8 +185,7 @@ create table if not exists payment_detail constraint fk_payment_detail__paymentId foreign key (payment_id) references payment (id) ); -create table if not exists payment_bank_transfer_detail -( +create table if not exists payment_bank_transfer_detail ( id bigint primary key, bank_code varchar(10) not null, settlement_status varchar(20) not null, @@ -178,8 +193,7 @@ create table if not exists payment_bank_transfer_detail constraint fk_payment_bank_transfer_details__id foreign key (id) references payment_detail (id) ); -create table if not exists payment_card_detail -( +create table if not exists payment_card_detail ( id bigint primary key, issuer_code varchar(10) not null, card_type varchar(10) not null, @@ -188,15 +202,14 @@ create table if not exists payment_card_detail card_number varchar(20) not null, approval_number varchar(8) not null, -- 실제로는 unique 이지만 테스트 결제 위젯에서는 항상 000000으로 동일한 값이 나옴. installment_plan_months tinyint not null, - is_interest_free boolean not null, + is_interest_free tinyint(1) not null, easypay_provider_code varchar(20), easypay_discount_amount integer, constraint fk_payment_card_detail__id foreign key (id) references payment_detail (id) ); -create table if not exists payment_easypay_prepaid_detail -( +create table if not exists payment_easypay_prepaid_detail( id bigint primary key, easypay_provider_code varchar(20) not null, amount integer not null, @@ -205,8 +218,7 @@ create table if not exists payment_easypay_prepaid_detail constraint fk_payment_easypay_prepaid_detail__id foreign key (id) references payment_detail (id) ); -create table if not exists canceled_payment -( +create table if not exists canceled_payment( id bigint primary key, payment_id bigint not null, requested_at datetime(6) not null, @@ -219,6 +231,5 @@ create table if not exists canceled_payment easypay_discount_amount integer not null, constraint uk_canceled_payment__paymentId unique (payment_id), - constraint fk_canceled_payment__paymentId foreign key (payment_id) references payment(id), - constraint fk_canceled_payment__canceledBy foreign key (canceled_by) references members(member_id) + constraint fk_canceled_payment__paymentId foreign key (payment_id) references payment(id) );