[Postgresql] 외래키 참조 테이블 조회 방법
·
DB
주어진 테이블이 참조되는 테이블인 경우의 외래 키 관계를 찾는 법 SELECT CCU.table_name AS search_table_name, CCU.column_name AS search_column_name, KCU.table_name AS foreign_table_name, KCU.column_name AS foreign_column_name, KCU.constraint_name AS foreign_constraint_name FROM information_schema.table_constraints AS TC JOIN information_schema.key_column_usage AS KCU ON TC.constraint_name = KCU.constraint_name JOIN informat..
폴더 구조 DB 스키마 설계
·
DB
폴더 구조 DB 스키마 예시 목록 Closure Table Folders: folder_id folder_name FolderRelationships: ancestor_id descendant_id depth 장점 참조 완결성 ancestor_id, descendant_id를 통해 실제 노드의 id를 참조 서브트리 사용 용이 깊이에 따른 성능 문제 트리 깊이가 늘어나도 일관된 성능 유지 가능 단점 공간 복잡도 증가 노드 간 관계를 저장하기에 데이터가 늘어남에 따라 공간 복잡도 증가 데이터 양 증가 관계 데이터가 O(n²) Closure Table - Store Hierarchical Data Seamlessly | PostgreSQL Path Enumeration 테이블명: Folders 필드명: fol..
DB PK UUID VS auto increment(serial)
·
DB
UUID vs INT ❓ PK를 INT로 해야할지 UUID로 해야할지? 먼저, INT의 범위는 2,147,483,647(4byte)까지 가능하다. 다만 추후 장기적으로 보았을 때 UUID나 nano id를 사용하는 것이 나을지 의문이다. UUID 장점 독립적이다. 어떠한 환경에서도 uuid 생성 함수 등을 이용해 사용이 가능하다. 보안상 안전하다. int의 경우 path로 노출될 때 정보가 쉽게 파악가능해지게 된다. 경쟁사에서 고객 수 파악 크롤링 인젝션 공격 취약 단점 길어서 상대적으로 성능 저하 저장공간을 많이 차지한다. 사람이 보기 힘들다. 정렬이 불가능하다. INT 장점 사람이 파악하기 쉽다. 상대적으로 빠르고 가볍다. 단점 분산 시스템에서 부적합 서버 A, 서버 B가 나뉘었을 때 서버 A에 있는..