Skip to content
seoki edited this page Jul 22, 2026 · 3 revisions

📄 원본(노션): https://app.notion.com/p/3a519935b8ae809a9d34d46a2ca4c813 — 최종 동기화 2026-07-22

아침 스크럼

  • 현성 - 굿
    • 수업듣기
    • 배송 알고리즘이나 소켓 통신 공부
  • 석희 - 나쁨
    • 공통응답 구현체 공부 할 예정
    • 웹 와이어프레임 작성 완료 후 공유
  • 동혁 - 괜찮음
    • 스프링과 웹소켓 전반적으로 공부
    • JPA, JDBC 관련 논의
    • 개인적 공부
  • 현서 - 일찍일어나서 졸림
    1. ERD 물리 설계 다같이
    • 웹소켓 공부
    • 주소관련 처리 논의 Client에서 처리하고 정보만 넣는다.
    • 카카오 길찾기 api 사용 연습 장소 ID, 위도 경도 둘 다 찾을 수 있음.

고려할 점: 소켓을 사용하는 경우 서버가 너무 오래 살아있으면 TIME_WAIT가 많이 걸려서 문제가 생길 수도.

우선 순위

  1. ERD 물리 설계 다같이
    1. 세션? 토큰? 현성, 동혁: 분산이 아니니까 세션이 좋을 것 같음. 세션을 이용 할 예정. 서버가 한 대이면 tomcat 내장 기능을 사용하면 된다.
      • Q: 서버를 중간에 재시작해야 하는 경우에는? → IP 저장? - 세션 객체 내부에 저장 가능함.
      • 스프링에서 제공하는 HTTPSession 사용
      • 추후 보완점
        • 인메모리에 있다면 서버가 꺼져버린다면?
        • 분산 서버가 필요하다면?
      • 현성 - {Key:Value} 맵을, {UserId : SessionId} (빠른 검색 용도)맵을 만들자
        • 세션ID(세션)을 통해 유저를 찾을 떄는 HTTPSession에서 제공해주는 관리Map을 이용하고
        • 동일한 유저가 다른 세션으로 접근하는 문제를 방지하기 위해 {UserId : SessionId} 맵 체크

동혁 : 아이디가 있는데 PK용 컬럼이 따로 필요할까?

  • 필요한 이유
    • 브라우저에서 읽어볼 수 있음
    • 아이디 변경 등이 어려움
    • (GPT) 개인정보 파기 및 가명화가 어렵다(?)
  • 필요 없는 이유
    • 클라이언트에 유출될 일이 있을까?

UUID 버전

  • v7? ⇒ 타임스탬프로 정렬이 가능함

    • 하지만 현재 Spring, Java 버전에서 지원안할 수도 있으니 확인 필요
  • 이메일은 VARCHAR(255) ⇒ 실제 이메일이 255자까지 허용

  1. JPA, JDBC 관련 논의
  2. 주소 처리 관련 논의
    1. Client?

    2. 실시간

      • 시간이 얼마나 지났는가 (가장 간단한 prototype)
      • 이후 거리까지 고려 동혁: 사용자 좌표를 가지고 매번 길찾기 api를 요청하면 비효율적일 것 같음. 현성: 퀵, 도보 배송 API가 카카오에 있음
      erDiagram
          USER {
              bigint user_id PK
              varchar role
              varchar name
              varchar phone
              varchar verification_status
              datetime created_at
          }
      
          DELIVERY_ORDER {
              bigint order_id PK
              bigint requester_id FK
              bigint pickup_address_id FK
              bigint destination_address_id FK
              varchar status
              varchar item_name
              varchar item_description
              int item_value
              int delivery_fee
              datetime requested_at
              datetime matching_deadline_at
              datetime created_at
              datetime updated_at
          }
      
          ORDER_STATUS_HISTORY {
              bigint history_id PK
              bigint order_id FK
              varchar previous_status
              varchar new_status
              varchar reason
              bigint changed_by FK
              datetime changed_at
          }
      
          MATCHING {
              bigint matching_id PK
              bigint order_id FK
              bigint dreamer_id FK
              varchar status
              datetime accepted_at
              datetime cancelled_at
              datetime created_at
          }
      
          DELIVERY {
              bigint delivery_id PK
              bigint order_id FK
              bigint dreamer_id FK
              varchar status
              datetime picked_up_at
              datetime delivery_started_at
              datetime completed_at
              datetime confirmed_at
              datetime updated_at
          }
      
          DELIVERY_STATUS_HISTORY {
              bigint history_id PK
              bigint delivery_id FK
              varchar previous_status
              varchar new_status
              varchar reason
              bigint changed_by FK
              datetime changed_at
          }
      
          DELIVERY_PROOF {
              bigint proof_id PK
              bigint delivery_id FK
              varchar proof_type
              varchar image_url
              varchar signature_url
              bigint submitted_by FK
              datetime submitted_at
          }
      
          DELIVERY_INCIDENT {
              bigint incident_id PK
              bigint delivery_id FK
              bigint reporter_id FK
              varchar incident_type
              varchar description
              varchar status
              datetime reported_at
              datetime resolved_at
          }
      
          INCIDENT_EVIDENCE {
              bigint evidence_id PK
              bigint incident_id FK
              varchar evidence_type
              varchar file_url
              datetime created_at
          }
      
          CLAIM {
              bigint claim_id PK
              bigint incident_id FK
              varchar status
              int requested_amount
              int compensation_amount
              varchar decision_reason
              bigint reviewed_by FK
              datetime reviewed_at
              datetime created_at
          }
      
          PARTNER_HANDOFF {
              bigint handoff_id PK
              bigint delivery_id FK
              bigint partner_id FK
              varchar status
              datetime requested_at
              datetime accepted_at
              datetime transferred_at
              datetime failed_at
          }
      
          RETURN_DELIVERY {
              bigint return_id PK
              bigint delivery_id FK
              varchar status
              varchar reason
              datetime started_at
              datetime returned_at
          }
      
          PAYMENT {
              bigint payment_id PK
              bigint order_id FK
              int amount
              varchar status
              datetime paid_at
              datetime refunded_at
          }
      
          SETTLEMENT {
              bigint settlement_id PK
              bigint order_id FK
              bigint receiver_id FK
              int amount
              varchar status
              datetime scheduled_at
              datetime settled_at
          }
      
          CANCELLATION {
              bigint cancellation_id PK
              bigint order_id FK
              bigint cancelled_by FK
              varchar cancellation_type
              varchar reason
              boolean penalty_applied
              int penalty_amount
              datetime cancelled_at
          }
      
          ADDRESS {
              bigint address_id PK
              varchar address
              varchar detail_address
              decimal latitude
              decimal longitude
          }
      
          USER ||--o{ DELIVERY_ORDER : requests
          USER ||--o{ MATCHING : accepts
          USER ||--o{ ORDER_STATUS_HISTORY : changes
          USER ||--o{ DELIVERY_STATUS_HISTORY : changes
      
          ADDRESS ||--o{ DELIVERY_ORDER : used_for
          DELIVERY_ORDER ||--o{ ORDER_STATUS_HISTORY : records
          DELIVERY_ORDER ||--o{ MATCHING : attempts
          DELIVERY_ORDER ||--o| DELIVERY : creates
          DELIVERY_ORDER ||--|| PAYMENT : has
          DELIVERY_ORDER ||--o| SETTLEMENT : settles
          DELIVERY_ORDER ||--o| CANCELLATION : cancelled_by
      
          DELIVERY ||--o{ DELIVERY_STATUS_HISTORY : records
          DELIVERY ||--o{ DELIVERY_PROOF : proves
          DELIVERY ||--o{ DELIVERY_INCIDENT : reports
          DELIVERY ||--o{ PARTNER_HANDOFF : hands_off
          DELIVERY ||--o| RETURN_DELIVERY : returns
      
          DELIVERY_INCIDENT ||--o{ INCIDENT_EVIDENCE : contains
          DELIVERY_INCIDENT ||--o| CLAIM : reviewed_as
      
      Loading
      erDiagram
          USER {
              bigint user_id PK
              varchar email UK
              varchar password_hash
              varchar name
              varchar phone UK
              varchar status
              boolean dreamer_enabled
              datetime created_at
              datetime updated_at
          }
      
          DREAMER_APPLICATION {
              bigint application_id PK
              bigint user_id FK
              varchar status
              varchar id_verification_key
              varchar bank_name
              varchar account_number_encrypted
              varchar account_holder
              varchar rejection_reason
              datetime applied_at
              datetime reviewed_at
          }
      
          USER ||--o| DREAMER_APPLICATION : applies
      
      Loading
  • 번호 포함해서 varchar(50)을 사용
  • 이메일: varchar(255)를 사용

거리 시간 예측 시:

  1. 부르미 - 드리미 예상 소요 시간
  2. 픽업 후 출발지 - 도착지 예상 소요시간

을 따로 저장해야 함.

지도 API: 카카오 도보 길찾기

와이어프레임 1

와이어프레임 2

  • 배달보다 연락하는 것의 중요도가 더 높다고 판단해 좌 우 배치. (드리미 - 배송)

배차 수락에 쿨타임 ui

배차 수락 쿨타임 UI

  • 배달원은 보고 가야하니까 채우고, 주문자는 굳이 채우지 말자. (드리미 - 배송)
    • 드리미 뒤로가기 버튼 나중에 색상 적용

주소 선택 화면

  • 주소 선택창에서 대면, 비대면 픽업/전달을 확인할 수 있는 창 필요. (부르미 - 배송 선택)

처음 부터 브랜드 컬러 접근성 - universal design - 색상대비가 어느 정도 이상이어야 한다. → appeal point! 아이콘 추가 작업 필요.

  • 사용자가 kakao api에 악의적인 요청을 준다면?

평점(리뷰) 컬럼에서 tinyint 사용시 오버플로우 문제?

  • 시나리오
    1. 리뷰(평점) 점수는 0.0~5.0 사이 점수로 표현할 것으로 계획함
    2. 평점의 평균을 계산하기 위해서는 평점 값들을 더해야함
    3. 하지만 tinyint타입 값들을 더하다보면 tinyint 표현 범위를 넘어갈 수 있음
  • 놔둬도 괜찮은 이유
    1. Java로 매핑할 때는 DB의 tinyint를 Java의 int로 매핑가능
    2. SQL에서 sum()을 하면 반환값은 tinyint가 아님

카드 결제 내부적으로 자동으로 불가능?

  • kg 이니시스 등으로 처리하려고 하면 돈 빠져나가야 할 때마다 카드 정보 다시 입력해야 함 → 포인트를 선 결제하는걸로 바꿔서 처음에만 결제해두고 비용 계산은 이 포인트로 진행. 카드 결제 시스템도 가능하지만 추가 요금 결제할 때마다 정보를 새로 입력해야하는 불편함. 이를 이용해 포인트 사용하도록 하는 유도 효과
  • 시연 편의를 위해서 가입하면 3만포인트 ⇒ 시연시 "포인트 충전은 어떻게 하나요?"질문이 들어오거나 "포인트 충전 기능도 해보시겠어요?" → 그때는 결제 시연
  • 환불도 방어를 고려 했다. ⇒ 자동으로 환불이 되기 때문에 테스트 상황에서는 할 수 있는 것이 많이 없음. ⇒ 원래 환불은 고객센터를 거쳐서 회사가 인지를 한 상태에서 진행되기에 방어가 가능하지만, 테스트 상황에서는 자동환불임
  • 폰인증 넣자
  • 실제 앱으로 껍데기 감싸는거 넣어볼거 고려 (최후 마지막에)
  • 범죄경력회보서 발급 방법 배민커넥트 쿠팡이츠 부릉프렌즈
    • 드림이는 범죄경력회보서를 사진과 함께 제출 해야 배달을 시작할 수 있다. - 기관이 아니라 기관 코드를 발급할 수는 없음. → 사진 한 장 더 넣는 것으로 우선 결정.
  • 로그인시 정지 기간도 고려해서 정지상태에서는 로그인 못하게
CREATE TABLE `DREAMI_REVIEW` (
	`review_id`	uuid	NOT NULL,
	`score`	tinyint	NOT NULL,
	`content`	varchar(200)	NULL,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`updated_dtm`	timestamp	NULL,
	`deleted_dtm`	timestamp	NULL,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `ADDRESS` (
	`address_id`	uuid	NOT NULL,
	`address_alias`	varchar(50)	NULL,
	`longitude`	decimal(11, 8)	NOT NULL,
	`latitude`	decimal(11, 8)	NOT NULL,
	`address_line_2`	varchar(255)	NOT NULL,
	`address_line_1`	varchar(255)	NOT NULL
);

CREATE TABLE `PARTNER_HANDOFF` (
	`partner_handoff_id`	uuid	NOT NULL,
	`order_id`	uuid	NOT NULL,
	`partner_id`	uuid	NOT NULL,
	`accident_id`	uuid	NULL,
	`handoff_dtm`	timestamp	NOT NULL,
	`is_picked_up`	boolean	NOT NULL,
	`note`	text	NULL,
	`handoff_reason`	varchar(50)	NULL,
	`picked_up_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `ORDER_STATUS_HISTORY` (
	`order_status_id`	uuid	NOT NULL,
	`previous_cd`	enum	NULL,
	`new_cd`	enum	NOT NULL,
	`changed_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `ACCIDENT_PROOF` (
	`proof_id`	uuid	NOT NULL,
	`accident_id`	uuid	NOT NULL,
	`proof_type`	varchar(200)	NULL,
	`file_url`	varchar(500)	NULL,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `BOORMI` (
	`boormi_id`	uuid	NOT NULL,
	`email`	varchar(255)	NOT NULL	COMMENT 'unique',
	`password`	varchar(255)	NOT NULL,
	`name`	varchar(50)	NOT NULL,
	`phone_number`	varchar(50)	NOT NULL	COMMENT 'unique',
	`user_cd`	enum	NULL,
	`is_dreami_activated`	boolean	NULL	DEFAULT false,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`updated_dtm`	timestamp	NULL,
	`deleted_dtm`	timestamp	NULL,
	`boormi_avg_score`	decimal(3,2)	NOT NULL	DEFAULT 0
);

CREATE TABLE `PICKUP_CERTIFICATION` (
	`certification_id`	uuid	NOT NULL,
	`certification_cd`	enum	NULL	COMMENT '대면, 비대면',
	`image_url`	varchar(500)	NULL,
	`sign_url`	varchar(500)	NULL,
	`submitted_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `SETTLEMENT` (
	`settlement_id`	uuid	NOT NULL,
	`settlement_amount`	bigint	NULL,
	`settlement_cd`	enum	NULL,
	`settlement_end_dtm`	timestamp	NOT NULL,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `CANCEL` (
	`cancel_id`	uuid	NOT NULL,
	`canceled_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`cancel_reason`	varchar(50)	NULL,
	`note`	text	NULL,
	`is_penalty_applied`	boolean	NOT NULL,
	`canceler_cd`	enum	NOT NULL,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `RETURNS` (
	`return_id`	uuid	NOT NULL,
	`delivery_id`	uuid	NOT NULL,
	`return_reason`	text	NULL,
	`return_start_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`return_end_dtm`	timestamp	NULL,
	`return_cd`	enum	NULL
);

CREATE TABLE `PAYMENT` (
	`payment_id`	uuid	NOT NULL,
	`payment_amount`	bigint	NOT NULL,
	`payment_cd`	enum	NOT NULL,
	`payment_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`refund_dtm`	timestamp	NULL
);

CREATE TABLE `COMPENSATION_CLAIM` (
	`claim_id`	uuid	NOT NULL,
	`request_cd`	enum	NULL,
	`claim_amount`	bigint	NOT NULL	DEFAULT 0,
	`accident_id`	uuid	NOT NULL,
	`compensation_amount`	bigint	NOT NULL	DEFAULT 0,
	`decision_reason`	text	NULL,
	`audit_dtm`	timestamp	NULL,
	`created_dtm`	timestamp	NULL	DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `DREAMI_REQUEST_DENIED_DETAILS` (
	`reject_id`	uuid	NOT NULL,
	`dreami_id`	uuid	NOT NULL,
	`rejected_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`reject_detail`	varchar(200)	NULL
);

CREATE TABLE `DELIVERY` (
	`delivery_id`	uuid	NOT NULL,
	`delivery_cd`	enum	NULL,
	`picked_up_dtm`	timestamp	NULL,
	`delivery_start_dtm`	timestamp	NULL	DEFAULT CURRENT_TIMESTAMP,
	`delivery_end_dtm`	timestamp	NULL,
	`received_dtm`	timestamp	NULL,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `DREAMI` (
	`dreami_id`	uuid	NOT NULL,
	`reject_detail`	varchar(255)	NULL,
	`request_dtm`	timestamp	NULL,
	`review_dtm`	timestamp	NULL,
	`request_cd`	enum	NOT NULL,
	`photo_url`	varchar(500)	NOT NULL,
	`dreami_avg_score`	decimal(3,2)	NOT NULL	DEFAULT 0
);

CREATE TABLE `ORDERS` (
	`order_id`	uuid	NOT NULL,
	`boormi_id`	uuid	NOT NULL,
	`dreami_id`	uuid	NULL,
	`item_name`	varchar(50)	NOT NULL,
	`item_cd`	enum	NOT NULL,
	`item_detail`	varchar(255)	NULL,
	`delivery_amount`	bigint	NULL,
	`order_cd`	enum	NULL,
	`delivery_eta`	int	NOT NULL	COMMENT '수정 불가능 (변동 사항은 변동 예상시간)',
	`origin_latitude`	decimal(11, 8)	NULL,
	`origin_longitude`	decimal(11, 8)	NULL,
	`origin_alias`	varchar(50)	NULL,
	`origin_address_line_1`	varchar(255)	NULL,
	`origin_address_line_2`	varchar(255)	NULL,
	`destination_latitude`	decimal(11, 8)	NULL,
	`destination_longitude`	decimal(11, 8)	NULL,
	`destination_alias`	varchar(50)	NULL,
	`destination_address_line_1`	varchar(255)	NULL,
	`destination_address_line_2`	varchar(255)	NULL,
	`payment_id`	uuid	NOT NULL,
	`delivery_request`	varchar(255)	NULL,
	`image_url`	varchar(500)	NULL,
	`delivery_request_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `DELIVERY_CERTIFICATION` (
	`certification_id`	uuid	NOT NULL,
	`delivery_id`	uuid	NOT NULL,
	`is_contact`	enum	NULL,
	`image_url`	varchar(500)	NULL,
	`sign_url`	varchar(500)	NULL,
	`submitted_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `PAYMENT_METHOD` (
	`payment_method_id`	uuid	NOT NULL,
	`billing_key`	varchar(255)	NOT NULL	COMMENT 'unique',
	`pg_name`	varchar(255)	NOT NULL,
	`payment_method_cd`	enum	NULL,
	`masking_no`	varchar(20)	NOT NULL,
	`is_default_payment`	boolean	NOT NULL	DEFAULT false,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`updated_dtm`	timestamp	NULL,
	`deleted_dtm`	timestamp	NULL,
	`boormi_id`	uuid	NOT NULL
);

CREATE TABLE `DELIVERY_ACCIDENT` (
	`accident_id`	uuid	NOT NULL,
	`delivery_id`	uuid	NOT NULL,
	`accident_type`	varchar(50)	NULL,
	`accident_details`	text	NULL,
	`processing_cd`	enum	NULL,
	`report_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`resolution_dtm`	timestamp	NULL
);

CREATE TABLE `BOORMI_REVIEW` (
	`review_id`	uuid	NOT NULL,
	`score`	tinyint	NOT NULL,
	`detail`	varchar(200)	NULL,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`updated_dtm`	timestamp	NULL,
	`deleted_dtm`	timestamp	NULL,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `MATCHING` (
	`matching_id`	uuid	NOT NULL,
	`accepted_dtm`	timestamp	NULL,
	`canceled_dtm`	timestamp	NULL,
	`created_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`order_id`	uuid	NOT NULL
);

CREATE TABLE `PARTNER` (
	`partner_id`	uuid	NOT NULL,
	`phone_number`	varchar(50)	NULL,
	`address`	varchar(255)	NULL,
	`name`	varchar(255)	NULL
);

CREATE TABLE `SETTLEMENT_DETAILS` (
	`settlement_id`	uuid	NOT NULL,
	`dreami_id`	uuid	NOT NULL,
	`settlement_account`	varchar(50)	NOT NULL,
	`registered_dtm`	timestamp	NOT NULL	DEFAULT CURRENT_TIMESTAMP,
	`settlement_bank`	varchar(50)	NULL
);

CREATE TABLE `BOORMI_REJECT_HISTORY` (
	`reject_id`	uuid	NOT NULL,
	`reject_dtm`	timestamp	NOT NULL,
	`reject_detail`	varchar(255)	NULL,
	`boormi_id`	uuid	NOT NULL
);

ALTER TABLE `DREAMI_REVIEW` ADD CONSTRAINT `PK_DREAMI_REVIEW` PRIMARY KEY (
	`review_id`
);

ALTER TABLE `ADDRESS` ADD CONSTRAINT `PK_ADDRESS` PRIMARY KEY (
	`address_id`
);

ALTER TABLE `PARTNER_HANDOFF` ADD CONSTRAINT `PK_PARTNER_HANDOFF` PRIMARY KEY (
	`partner_handoff_id`
);

ALTER TABLE `ORDER_STATUS_HISTORY` ADD CONSTRAINT `PK_ORDER_STATUS_HISTORY` PRIMARY KEY (
	`order_status_id`
);

ALTER TABLE `ACCIDENT_PROOF` ADD CONSTRAINT `PK_ACCIDENT_PROOF` PRIMARY KEY (
	`proof_id`,
	`accident_id`
);

ALTER TABLE `BOORMI` ADD CONSTRAINT `PK_BOORMI` PRIMARY KEY (
	`boormi_id`
);

ALTER TABLE `PICKUP_CERTIFICATION` ADD CONSTRAINT `PK_PICKUP_CERTIFICATION` PRIMARY KEY (
	`certification_id`
);

ALTER TABLE `SETTLEMENT` ADD CONSTRAINT `PK_SETTLEMENT` PRIMARY KEY (
	`settlement_id`
);

ALTER TABLE `CANCEL` ADD CONSTRAINT `PK_CANCEL` PRIMARY KEY (
	`cancel_id`
);

ALTER TABLE `RETURNS` ADD CONSTRAINT `PK_RETURNS` PRIMARY KEY (
	`return_id`
);

ALTER TABLE `PAYMENT` ADD CONSTRAINT `PK_PAYMENT` PRIMARY KEY (
	`payment_id`
);

ALTER TABLE `COMPENSATION_CLAIM` ADD CONSTRAINT `PK_COMPENSATION_CLAIM` PRIMARY KEY (
	`claim_id`
);

ALTER TABLE `DREAMI_REQUEST_DENIED_DETAILS` ADD CONSTRAINT `PK_DREAMI_REQUEST_DENIED_DETAILS` PRIMARY KEY (
	`reject_id`
);

ALTER TABLE `DELIVERY` ADD CONSTRAINT `PK_DELIVERY` PRIMARY KEY (
	`delivery_id`
);

ALTER TABLE `DREAMI` ADD CONSTRAINT `PK_DREAMI` PRIMARY KEY (
	`dreami_id`
);

ALTER TABLE `ORDERS` ADD CONSTRAINT `PK_ORDERS` PRIMARY KEY (
	`order_id`
);

ALTER TABLE `DELIVERY_CERTIFICATION` ADD CONSTRAINT `PK_DELIVERY_CERTIFICATION` PRIMARY KEY (
	`certification_id`
);

ALTER TABLE `PAYMENT_METHOD` ADD CONSTRAINT `PK_PAYMENT_METHOD` PRIMARY KEY (
	`payment_method_id`
);

ALTER TABLE `DELIVERY_ACCIDENT` ADD CONSTRAINT `PK_DELIVERY_ACCIDENT` PRIMARY KEY (
	`accident_id`
);

ALTER TABLE `BOORMI_REVIEW` ADD CONSTRAINT `PK_BOORMI_REVIEW` PRIMARY KEY (
	`review_id`
);

ALTER TABLE `MATCHING` ADD CONSTRAINT `PK_MATCHING` PRIMARY KEY (
	`matching_id`
);

ALTER TABLE `PARTNER` ADD CONSTRAINT `PK_PARTNER` PRIMARY KEY (
	`partner_id`
);

ALTER TABLE `SETTLEMENT_DETAILS` ADD CONSTRAINT `PK_SETTLEMENT_DETAILS` PRIMARY KEY (
	`settlement_id`,
	`dreami_id`
);

ALTER TABLE `BOORMI_REJECT_HISTORY` ADD CONSTRAINT `PK_BOORMI_REJECT_HISTORY` PRIMARY KEY (
	`reject_id`
);

ALTER TABLE `ACCIDENT_PROOF` ADD CONSTRAINT `FK_DELIVERY_ACCIDENT_TO_ACCIDENT_PROOF_1` FOREIGN KEY (
	`accident_id`
)
REFERENCES `DELIVERY_ACCIDENT` (
	`accident_id`
);

ALTER TABLE `DREAMI` ADD CONSTRAINT `FK_BOORMI_TO_DREAMI_1` FOREIGN KEY (
	`dreami_id`
)
REFERENCES `BOORMI` (
	`boormi_id`
);

ALTER TABLE `SETTLEMENT_DETAILS` ADD CONSTRAINT `FK_DREAMI_TO_SETTLEMENT_DETAILS_1` FOREIGN KEY (
	`dreami_id`
)
REFERENCES `DREAMI` (
	`dreami_id`
);

🛵 쉼, 부름

Softeer Bootcamp 8th · WEB Team 3


🏠 시작하기

🤝 협업

📋 기획안

🧠 기술 결정 기록 (ADR)

🕸️매칭 시스템

🧪 부하 테스트

🔧 트러블슈팅

🗓️ 데일리 스크럼


Repo

Clone this wiki locally