PostgreSQL APDB (apdb_master) 데이터베이스 문서
접속 정보
| 항목 |
값 |
| Host |
192.168.0.87 |
| Port |
5432 |
| Database |
apdb_master |
| User |
admin |
| Password |
trajet6640 |
| Connection String |
postgresql://admin:trajet6640@192.168.0.87:5432/apdb_master |
from sqlalchemy import create_engine
engine = create_engine('postgresql://admin:trajet6640@192.168.0.87:5432/apdb_master')
핵심 테이블
apc — 동물약품 마스터 (16,326건)
APC(Animal Product Code) 기반 동물약품 정보. 모든 동물약의 기준 테이블.
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| apc |
VARCHAR(100) |
APC 코드 (13자리, '023'으로 시작) |
| item_seq |
VARCHAR(100) |
품목기준코드 |
| item_code |
VARCHAR(100) |
품목코드 (APC 앞 8자리 = item_code) |
| product_name |
VARCHAR(200) |
제품명 (한글) |
| product_english_name |
VARCHAR(200) |
제품 영문명 |
| company_name |
VARCHAR(100) |
제조/수입사명 |
| approval_number |
VARCHAR(100) |
허가번호 |
| ac |
VARCHAR(100) |
AC 코드 |
| dosage_code |
VARCHAR(100) |
제형코드 |
| packaging_code |
VARCHAR(100) |
포장코드 |
| pc |
VARCHAR(100) |
PC 코드 |
| dosage |
VARCHAR(100) |
제형 (정, 액, 캡슐 등) |
| packaging |
VARCHAR(100) |
포장단위 |
| approval_date |
VARCHAR(100) |
허가일자 |
| product_type |
VARCHAR(500) |
제품유형 |
| main_ingredient |
VARCHAR(500) |
주성분 |
| finished_material |
VARCHAR(500) |
완제원료 |
| manufacture_import |
VARCHAR(100) |
제조/수입 구분 |
| country_of_manufacture |
VARCHAR(100) |
제조국 |
| basic_info |
TEXT |
기본정보 |
| raw_material |
TEXT |
원료약품 |
| efficacy_effect |
TEXT |
효능효과 |
| dosage_instructions |
TEXT |
용법용량 |
| precautions |
TEXT |
주의사항 |
| component_code |
VARCHAR(100) |
성분코드 |
| component_name_ko |
VARCHAR(200) |
성분명(한글) |
| component_name_en |
VARCHAR(200) |
성분명(영문) |
| dosage_factor |
VARCHAR(100) |
용량계수 |
| llm_pharm |
JSONB |
LLM 생성 약사용 정보 (투여량, 주의사항 등) |
| llm_user |
VARCHAR(500) |
LLM 생성 사용자용 설명 |
| image_url1~3 |
VARCHAR(500) |
제품 이미지 URL |
| list_price |
NUMERIC(10,2) |
정가 |
| weight_min_kg |
DOUBLE PRECISION |
체중 하한 (kg) |
| weight_max_kg |
DOUBLE PRECISION |
체중 상한 (kg) |
| pet_size_label |
VARCHAR(100) |
체중 라벨 (소형견용, 대형견용 등) |
| pet_size_code |
VARCHAR(10) |
체중 코드 |
| for_pets |
BOOLEAN |
반려동물용 여부 |
| prescription_target |
BOOLEAN |
처방대상 여부 |
| is_not_medicine |
BOOLEAN |
비의약품 여부 |
| usage_guide |
JSONB |
사용 가이드 (구조화) |
| godoimage_url_f/b/d |
VARCHAR(500) |
고도몰 이미지 URL |
| pill_color |
VARCHAR(100) |
알약 색상 |
| updated_at |
TIMESTAMP |
수정일시 |
| parent_item_id |
INTEGER |
부모 품목 ID |
APC 코드 구조: 023XXXXXYYZZZ
- 앞 8자리 (
023XXXXX) = item_code (품목코드, 대표 APC)
- 나머지 = 포장단위별 구분
component_code — 성분 정보 (1,105건)
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| code |
VARCHAR(500) |
성분코드 |
| component_name_ko |
VARCHAR(500) |
성분명(한글) |
| component_name_en |
VARCHAR(500) |
성분명(영문) |
| description |
VARCHAR(500) |
설명 |
| efficacy |
TEXT |
효능 |
| target_animals |
JSONB |
대상 동물 |
| precautions |
TEXT |
주의사항 |
| additional_precautions |
TEXT |
추가 주의사항 |
| prohibited_breeds |
VARCHAR(500) |
금기 품종 |
| offlabel |
TEXT |
오프라벨 사용 |
component_guide — 성분별 투여 가이드 (1건)
| 컬럼 |
타입 |
설명 |
| component_code |
VARCHAR(50) PK |
성분코드 |
| component_name_ko/en |
VARCHAR(200) |
성분명 |
| dosing_interval_adult |
VARCHAR(200) |
성체 투여간격 |
| dosing_interval_high_risk |
VARCHAR(200) |
고위험군 투여간격 |
| dosing_interval_puppy |
VARCHAR(200) |
유아 투여간격 |
| dosing_interval_source |
VARCHAR(500) |
출처 |
| withdrawal_period |
VARCHAR(200) |
휴약기간 |
| contraindication |
VARCHAR(500) |
금기사항 |
| companion_drugs |
VARCHAR(500) |
병용약물 |
dosage_info — 용량 정보 (152건)
| 컬럼 |
타입 |
설명 |
| id |
INTEGER PK |
일련번호 |
| apdb_idx |
INTEGER |
apc 테이블 idx 참조 |
| component_code |
VARCHAR(100) |
성분코드 |
| dose_per_kg |
DOUBLE PRECISION |
kg당 용량 |
| dose_per_kg_min/max |
DOUBLE PRECISION |
kg당 용량 범위 |
| dose_unit |
VARCHAR(20) |
용량 단위 |
| unit_dose |
DOUBLE PRECISION |
단위 용량 |
| unit_type |
VARCHAR(20) |
단위 타입 |
| frequency |
VARCHAR(50) |
투여 빈도 |
| route |
VARCHAR(30) |
투여 경로 |
| weight_min/max_kg |
DOUBLE PRECISION |
적용 체중 범위 |
| animal_type |
VARCHAR(10) |
동물 종류 |
| source |
VARCHAR(20) |
출처 |
| verified |
BOOLEAN |
검증 여부 |
| raw_text |
TEXT |
원문 |
symptoms — 증상 코드 (51건)
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| prefix |
VARCHAR(1) |
카테고리 접두사 |
| prefix_description |
VARCHAR(50) |
카테고리 설명 |
| symptom_code |
VARCHAR(10) |
증상 코드 |
| symptom_description |
VARCHAR(255) |
증상 설명 |
| disease_description |
VARCHAR(255) |
질병 설명 |
symptom_component_mapping — 증상-성분 매핑 (111건)
| 컬럼 |
타입 |
설명 |
| symptom_code |
VARCHAR(10) |
증상 코드 |
| component_code |
VARCHAR(500) |
성분 코드 |
재고/유통 테이블
inventory — 재고 (656건)
| 컬럼 |
타입 |
설명 |
| id |
INTEGER PK |
일련번호 |
| apdb_id |
INTEGER |
apc.idx 참조 |
| supplier_cost |
NUMERIC(12,2) |
공급가 |
| wholesaler_price |
NUMERIC(12,2) |
도매가 |
| retail_price |
NUMERIC(12,2) |
소매가 |
| quantity |
INTEGER |
수량 |
| transaction_type |
VARCHAR(20) |
거래유형 |
| order_no |
VARCHAR(100) |
주문번호 |
| serial_number |
VARCHAR(100) |
시리얼번호 |
| expiration_date |
DATE |
유효기간 |
| receipt_id |
INTEGER |
입고전표 ID |
| entity_id |
VARCHAR(50) |
거래처 ID |
| entity_type |
VARCHAR(20) |
거래처 유형 |
| location_id |
INTEGER |
보관위치 ID |
| goods_no |
INTEGER |
고도몰 상품번호 |
receipt — 입고전표 (21건)
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| receipt_number |
VARCHAR(100) |
전표번호 |
| receipt_date |
TIMESTAMP |
입고일 |
| total_quantity |
INTEGER |
총수량 |
| total_amount |
NUMERIC(10,2) |
총금액 |
| entity_id |
VARCHAR(50) |
거래처 ID |
| entity_type |
VARCHAR(20) |
거래처 유형 |
vendor — 거래처 (3건)
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| vendor_code |
VARCHAR(50) |
거래처 코드 |
| name |
VARCHAR(200) |
거래처명 |
| business_reg_no |
VARCHAR(50) |
사업자번호 |
약국/회원 테이블
animal_pharmacies — 동물약국 목록 (18,955건)
전국 동물약국 데이터 (공공데이터 기반).
| 컬럼 |
타입 |
설명 |
| id |
INTEGER PK |
일련번호 |
| management_number |
VARCHAR(50) |
관리번호 |
| name |
VARCHAR(200) |
약국명 |
| phone |
VARCHAR(20) |
전화번호 |
| address_old/new |
VARCHAR(500) |
주소 |
| latitude/longitude |
NUMERIC |
위경도 |
| business_status |
VARCHAR(10) |
영업상태 |
p_member — 약국 회원 (31건)
| 컬럼 |
타입 |
설명 |
| idx |
INTEGER PK |
일련번호 |
| memno |
INTEGER |
회원번호 |
| pharmacyname |
VARCHAR(100) |
약국명 |
| businessregno |
VARCHAR(20) |
사업자번호 |
| kioskusage |
BOOLEAN |
키오스크 사용 |
| mem_nm |
VARCHAR(100) |
회원명 |
기타 테이블
| 테이블 |
행수 |
설명 |
| apc_subnames |
0 |
APC 별칭 (미사용) |
| cs_memo |
13 |
CS 메모 |
| excluded_pharmacies |
15 |
제외 약국 |
| evidence_reference |
0 |
근거 문헌 참조 |
| recommendation_log |
3 |
추천 로그 |
| supplementary_product |
5 |
보조제품 |
| optimal_stock |
3 |
적정재고 설정 |
| sync_status |
168 |
동기화 상태 |
| system_log |
438 |
시스템 로그 |
| location |
4 |
보관 위치 |
| region / subregion |
3/8 |
지역 구분 |
| member_group_change_logs |
4 |
회원그룹 변경 이력 |
주요 쿼리 예시
-- APC로 제품 조회
SELECT * FROM apc WHERE apc = '0230338510101';
-- 제품명 검색 (띄어쓰기 무시)
SELECT apc, product_name
FROM apc
WHERE REGEXP_REPLACE(LOWER(product_name), '[\s\-\.]+', '', 'g')
LIKE '%파라캅%';
-- 체중별 제품 검색
SELECT apc, product_name, weight_min_kg, weight_max_kg
FROM apc
WHERE weight_min_kg IS NOT NULL
ORDER BY product_name;
-- 대표 APC → 포장단위 APC 조회 (앞 8자리 기준)
SELECT apc, product_name, packaging
FROM apc
WHERE LEFT(apc, 8) = '02303385';
-- 성분별 제품 검색
SELECT a.apc, a.product_name, a.component_name_ko
FROM apc a
WHERE a.component_code = 'P001';
-- 증상 → 성분 → 제품 검색
SELECT s.symptom_description, cc.component_name_ko, a.product_name
FROM symptoms s
JOIN symptom_component_mapping scm ON s.symptom_code = scm.symptom_code
JOIN component_code cc ON cc.code = scm.component_code
JOIN apc a ON a.component_code = cc.code;