4.8 KiB
4.8 KiB
DB 테이블 목록 및 ERD
노션 ERD·웹 기능목록·
06-데이터베이스정리구조.md네이밍 규칙을 반영한 테이블 설계.
지자체(lg_idx) 기준 멀티테넌트, 데이터 격리.
1. 테이블 목록 및 역할
| 테이블 | PK | 지자체 FK | 설명 |
|---|---|---|---|
| local_government | lg_idx | — | 지자체 마스터(테넌트 루트) |
| member | mb_idx | mb_lg_idx (nullable) | 회원(로그인·권한). 지자체관리자만 lg 연결 |
| member_log | mll_idx | — | 로그인/로그아웃 이력 |
| designated_shop | ds_idx | ds_lg_idx | 지정 판매소. 고정 가상계좌(va) 보유 |
| code_kind | ck_idx | — | 기본코드 종류(도/시/구, 봉투 구분 등) |
| code_detail | cd_idx | — | 종류별 세부 코드. ck_idx FK |
| product | pr_idx | pr_lg_idx | 지자체별 취급 품목(규격·용량) |
| product_price | pp_idx | pp_lg_idx | 적용일자별 단가(발주/도매/소비자가) |
| packaging_unit | pu_idx | pu_lg_idx | 박스당 팩·팩당 낱장 등 포장 단위 |
| agent | ag_idx | ag_lg_idx | 판매 대행소(은행 등) |
| contact | ct_idx | ct_lg_idx | 담당자(구/군/대행소/제작업체) |
| company | co_idx | co_lg_idx | 업체(협회·제작업체·회수업체) |
| beneficiary | bf_idx | bf_lg_idx | 무료용 대상자 |
| purchase_order | po_idx | po_lg_idx | 발주(지자체 → 제작업체) |
| inbound_receipt | ir_idx | ir_lg_idx | 입고 내역(LOT·바코드 연동) |
| sales_order | so_idx | so_lg_idx | 판매소 주문. 데이터 격리용 lg_idx |
| stock_transaction | st_idx | st_lg_idx | 수불(입고/판매/불출/파기) |
2. 엔티티 관계 다이어그램 (ERD)
erDiagram
local_government ||--o{ member : "mb_lg_idx (지자체관리자)"
local_government ||--o{ designated_shop : "ds_lg_idx"
designated_shop ||--o| member : "ds_mb_idx (로그인 1:1)"
local_government ||--o{ product : "pr_lg_idx"
local_government ||--o{ product_price : "pp_lg_idx"
local_government ||--o{ packaging_unit : "pu_lg_idx"
local_government ||--o{ agent : "ag_lg_idx"
local_government ||--o{ contact : "ct_lg_idx"
local_government ||--o{ company : "co_lg_idx"
local_government ||--o{ beneficiary : "bf_lg_idx"
local_government ||--o{ purchase_order : "po_lg_idx"
local_government ||--o{ inbound_receipt : "ir_lg_idx"
local_government ||--o{ sales_order : "so_lg_idx"
local_government ||--o{ stock_transaction : "st_lg_idx"
designated_shop ||--o{ sales_order : "so_ds_idx"
product ||--o{ product_price : "pp_pr_idx"
product ||--o{ inbound_receipt : "ir_pr_idx"
product ||--o{ stock_transaction : "st_pr_idx"
purchase_order ||--o{ inbound_receipt : "ir_po_idx (LOT)"
sales_order ||--o{ stock_transaction : "참조"
local_government {
int lg_idx PK
string lg_name
string lg_code
string lg_sido
string lg_gugun
tinyint lg_state
datetime lg_regdate
}
member {
int mb_idx PK
int mb_lg_idx FK "nullable"
string mb_id
string mb_passwd
string mb_name
tinyint mb_level "1=일반,2=지정판매소,3=지자체,4=super"
tinyint mb_state
datetime mb_regdate
}
designated_shop {
int ds_idx PK
int ds_lg_idx FK
int ds_mb_idx FK "nullable"
string ds_shop_no
string ds_name
string ds_va_number "고정 가상계좌"
string ds_status "정상,폐업,직권해지"
datetime ds_regdate
}
product {
int pr_idx PK
int pr_lg_idx FK
string pr_type "일반,음식물,재사용"
string pr_capacity "3L,5L,10L"
datetime pr_regdate
}
sales_order {
int so_idx PK
int so_lg_idx FK "데이터 격리"
int so_ds_idx FK
datetime so_order_date
int so_total_amount
string so_payment_status "입금대기,완료,취소"
}
inbound_receipt {
int ir_idx PK
int ir_lg_idx FK
int ir_pr_idx FK
int ir_po_idx FK "LOT"
string ir_lot_number
int ir_quantity
datetime ir_receipt_date
}
stock_transaction {
int st_idx PK
int st_lg_idx FK
int st_pr_idx FK
string st_trans_type "IN,OUT,FREE,DISCARD"
int st_quantity
int st_reference_id "so_idx or ir_idx 등"
datetime st_trans_date
}
3. 참조 자료
- ERD·요구사항:
docs/종량제 관련 자료/종량제 개발목록/노션_정리_03-WBS_데이터베이스_ERD.md - ERD 이미지:
docs/종량제 관련 자료/ss_gbms/ss_gbms/1-5.png - 네이밍 규칙:
docs/개발 규칙/06-데이터베이스정리구조.md