2.논리적 설계: 속성들을 DB와 웹페이지 개발자 입장에서 속성들을 봤을 때 정보를 어떻게 관리할지 파악함.
3.물리적 설계: 어떻게하면 데이터를 쉽고 빨리 찾아올 수 있는지 테이블을 합치고 쪼개고 조인하는 작업을 함.
개인적으로 저자는 이렇게 순서를 쪼개서 하지 않고 생각의 흐름대로 했다.
1. 사이트 맵을 먼저 파악하고, 각 페이지가 어떻게 연결 되어있는지 먼저 파악했다.
2.그 후 회원가입에 있는 정보를 MEMBER테이블에 넣었고, MEMBER테이블과 BBS테이블을 ID를 외래키로 연결시켰다.
처음 설계할때는 BBS 메뉴를 하나의 테이블로 생각하고 BBS 테이블만 4개를 만들었었는데 데이터가 중복이었고, 굉장히 비효율적이라는 생각이 들어 카테고리 항목을 넣어 하나로 합쳤다.
3.BBS 테이블이 거의 부모 테이블이고 Comment, 파일, 유기견, 입양자/분양자로 자식테이블 형태로 테이블을 쪼갰는데 그 이유는 첫번째는 기능면에서의 분리, 두번째는 개별로 읽어올 필요가 있다고 판단되서 이다.
4. 첨부 파일 테이블은 웹페이지 코딩을 할 때 경로를 함께 저장해줘야하는데 이때 파일 이름과 경로를 함께 저장해두면 편하기 때문에 파일 이름과 경로+파일 이름 두개를 저장하기 위해서는 따로 테이블을 만들었다. BBS 테이블에 합쳐도 되지 않나? 이런 생각이 들기도 하지만 파일을 개별로 불러 쓸 수 있는 상황이 있을까봐 아직도 고민하고 있는 부분이다.
5.자유게시판을 제외하고는 유기견의 정보가 다 들어가기 때문에 유기견테이블을 만들었다. 이유는 게시판을 옮겨다닐때마다 유기견 정보를 새로 작성하면 불편하기 때문에 기존에 작성한 유기견정보에 고유번호를 부여해 저장할 수 있게 따로 테이블을 만들었다.
6.입양자 분양자 테이블은 고민을 많이 했었다. 입양자와 분양자 게시글이 연결되어있어야 해서 슈퍼키를 사용했다.
데이터 베이스를 처음 설계해보는거라 어디가 부족한지 잘 모르겠고, 효율적인지도 잘 모르겠어서 총체적으로 잘 모르겠다. 하지만 이것저것 생각하면서 설계한거에 큰 점수를 주고 싶다.