본문 바로가기
프로젝트/폐기물 데이터 처리 홈페이지

[토이 프로젝트 WST] 데이터 베이스 설계도

by 집돌이디벨로퍼 2024. 6. 6.

PostgreSQL을 사용하여 DB를 만들 계획이다. 처음엔 MySQL을 사용하려했지만 찾아보니 MySQL은 데이터 읽기만 최적화 되어있다고한다, 이번 프로젝트에선 읽기도 중요하지만 데이터를 섞어서 뽑아내는 것이 더 중요하다고 판단해 PostgreSQL을 사용할 예정이다. PostgreSQL의 장점만 나열하자면 대량의 데이터 집합, 복잡한 쿼리, 읽기/쓰기 작업을 처리할 때 빠르다고한다.

 

PostgreSQL에서 "로킹"은 데이터베이스에서의 동시성 제어를 의미한다. 데이터베이스에서 여러 사용자나 프로세스가 동시에 데이터를 읽거나 쓸 때 데이터의 일관성을 유지하기 위해 사용된다.

(데이터 베이스의 일관된 상태란? 한 사용자가 데이터를 변경하는 동안 다른 사용자가 동일한 데이터를 읽는 경우, 데이터베이스는 변경된 데이터를 반영하여 데이터베이스가 일관된 상태를 유지한다는 뜻.)

 

DB를 직접 설계하는 것은 처음이라 일단 필요하다고 생각되는 것들은 다 쳐박아놨었다. 다시보니 물리, 논리자리도 틀려있었네..

초기 폐기물 현황 테이블

 

 

설계를 끝낸 테이블

처음에 짠 테이블은 정말 아니다 싶어서 몇시간동안은 테이블만 본 것 같다.. 내가 필요한 테이블이 뭔지 계속해서 생각하던 도중에 폐기물 현황 테이블에 대체 가격이 왜 필요한거지? 라는 생각이 들었다.... 이 생각이 왜 이제서야 들었을까?

그리고 품목코드를 외래키로 이어서 거래내역 테이블을 생성했다. 일단은 지금 내 수준에선 이게 최선이라고 생각한다.. 나중에 피드백을 받으면 바꿔야지 ㅎ; 피드백된 ERD는 바로바로 수정해서 블로그에 올릴 생각이다.

 

 

최종 ERD

 

감사추적기능 테이블이 이게 맞는지는 모르겠지만 여러군데 찾아서 만들어봤다 아니면 바로 수정해야지.. ㅎ 일단 이렇게 설계도 끝!