1. 사용자 테이블 (p_users)

필드 이름 데이터 타입 설명
user_id BIGINT 고유 id
username VARCHAR(10) 사용자 이름, 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)
nickname VARCHAR(100) 사용자 닉네임, UNIQUE
email VARCHAR(255) 사용자 이메일, UNIQUE
password VARCHAR(255) 사용자 비밀번호, 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자
role ENUM(• 마스터 관리자
• 허브 관리자
• 허브 배송담당자
• 허브 업체 ) 사용자 역할 (MASTER, HUB_MANAGER, HUB_SHIPPING_MANAGER, HUB_COMPANY)
is_delete BOOLEAN 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

2. 배송 담당자 테이블 (p_shipping_managers)

필드 이름 데이터 타입 설명
shipping_manager_id UUID ID, Primary Key
type ENUM(”공통 허브 이동 담당자”, “업체 배송 담당자”) 배송 담당자의 type
slack_id VARCHAR(20) 담당자 슬랙 아이디
hub_id UUID 허브 아이디 (FK)
user_id BIGINT 사용자 아이디 (FK)
is_delete BOOLEAN 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

3. 슬랙 메시지 테이블 (p_slack_messages)

필드 이름 데이터 타입 설명
slack_message_id UUID ID, Primary Key
slack_id VARCHAR(20) 수신자 슬랙 id
message VARCHAR 메시지
sended_at TIMESTAMP 보낸 시간
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

4. 업체 테이블 (P_COMPANIES)

컬럼명 컬럼ID 데이터타입 설명
가게ID company_id VARCHAR(200) UUID
업체관리자 user_id BIGINT
업체타입 company_type VARCHAR(25) 생산업체, 수령업체
업체 관리 허브 hub_id UUID UUID
업체명 company_name VARCHAR(100)
업체 주소 company_address VARCHAR(255)
삭제 여부 is_delete BOOLEAN
등록일 created_at TIMESTAMP
등록자 created_by LONG
수정일 updated_at TIMESTAMP
수정자 updated_by LONG
삭제일 deleted_at TIMESTAMP
삭제자 deleted_by LONG

5. 상품 테이블 (P_PRODUCTS)

컬럼 명 컬럼ID 데이터 타입 설명
상품ID product_id VARCHAR(200) UUID
제공 업체 company_id VARCHAR(200) 해당 상품을 제공하는 업체 ID
상품 관리 Hub hub_id UUID UUID
상품 명 product_name VARCHAR(200)
상품 가격 product_price INTEGER
상품 설명 product_description TEXT
상품 재고 stock_quantity INTEGER
삭제 여부 is_delete BOOLEAN FALSE
생성 시간 created_at TIMESTAMP 레코드 생성 시간
생성자 created_by VARCHAR(100) 레코드 생성
수정 시간 updated_at TIMESTAMP 레코드 수정 시간
수정자 updated_by VARCHAR(100) 레코드 수정자
삭제 시간 deleted_at TIMESTAMP 레코드 삭제 시간
삭제자 deleted_by VARCHAR(100) 레코드 삭제자

6. 허브 테이블 (P_HUBS)

컬럼명 컬럼ID 데이터 타입 설명
허브ID hub_id UUID
허브 이름 hub_name VARCHAR(100)
허브 관리자 ID hub_manager_Id UUID
허브 주소 hub_address VARCHAR(255)
허브 경도 longitude numeric
허브 위도 latitude numeric
삭제 여부 is_delete BOOLEAN
생성시간 created_at TIMESTAMP 레코드 생성 시간
생성자 created_by VARCHAR(100) 레코드 생성자
수정시간 updated_at TIMESTAMP 레코드 수정 시간
수정자 updated_by VARCHAR(100) 레코드 수정자
삭제시간 deleted_at TIMESTAMP 레코드 삭제 시간
삭제자 deleted_by VARCHAR(100) 레코드 삭제자

7. 허브 간 이동정보(P_INTER_HUB)

컬럼명 컬럼ID 데이터 타입 설명
이동 정보 ID inter_hub_id UUID
출발 허브 ID departure_hub_id UUID
도착 허브 ID arrival_hub_id UUID
소요 시간 elapsed_time VARCHAR(100)
삭제 여부 is_delete BOOLEAN
생성시간 created_at TIMESTAMP 레코드 생성 시간
생성자 created_by VARCHAR(100) 레코드 생성자
수정시간 updated_at TIMESTAMP 레코드 수정 시간
수정자 updated_by VARCHAR(100) 레코드 수정자
삭제시간 deleted_at TIMESTAMP 레코드 삭제 시간
삭제자 deleted_by VARCHAR(100) 레코드 삭제자

8. 주문 테이블(P_ORDERS)

필드이름 데이터타입 설명
order_id UUID PK
supplier_company_id UUID 요청업체ID(FK)
receiver_company_id UUID 수령업체ID(FK)
delivery_id UUID 배송ID(FK)
order_date TIMESTAMP 주문 일자
order_state VARCHAR(20) 주문 상태(PENDING, CONFIRMED, SHIPPED, DELIVERED, CANCELLED)
total_amount DECIMAL(10,2) 총 주문 금액
total_quantity BIGINT 총 수량
is_delete BOOLEAN 정보가 공개되었는지의 여부를 나타내는 값
default: false
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)