팀 토이 프로젝트 일지 5

[[TOC]]

1. DB를 만들어보자

지난 시간에 이어 이번 시간까지 디자인을 마무리하고, 이제 db를 정하기로 하였습니다. db를 정한다는 것은 db에 사용될 테이블 각각의 필드들을 정의하고 테이블 간의 관계를 정립하는 것을 의미합니다. 원래는 ERD(Entity Relationship Model)를 그려서 나타내는 형식을 보편적으로 사용한다고 합니다. 하지만 이번에는 그정도는 아니고 테이블을 만들고, 각 테이블간의 관계를 어떻게 만들 것인지에 대해서만 논의했습니다. 이번에 모이기 이전에 테이블을 어떻게 만들지 구상하고 가능하면 자료를 만들어 오자고 했었는데, 다행히 제가 간단하게나마 테이블을 자료로 만들었어서 그 자료를 보면서 서로 토의하였습니다.

2. 테이블간의 관계

DB에 사용될 테이블을 정의할 때, 가장 중요하게 생각해야 할 것이 바로 테이블간의 관계라고 할 수 있습니다. 테이블 사이의 관계가 정확하에 정의해야, 나중에 프로그램이 완성되고 나서 테이블 간의 관계에 따라 올바르게 프로그램이 작동할 것이며, 또 테이블의 관계 자체가 기능의 관계를 나타낸다고도 볼 수 있기 때문입니다. M:N관계를 갖는 두 테이블이 있을때, 이 두 테이블은 테이블의 관계를 나타내는 또다른 테이블에 의해 서로 관계를 갖습니다.

table1      
id column1 column2 column3
table1_id1 aaa bbb ccc
     
table2      
id column1 column2 column3
table_id2 ddd eee fff
     

->

relation    
id table1_id table2_id
relation_id table1_id1 table_id2
   

위의 표들은, table1의 table1_id와 table2의 table2_id가 서로 관계를 가질 때 생성되는 관계 테이블 relation의 모습입니다. 여기서 table1_id 컬럼에 table1의 id들이 들어가고, table2_id에 table2의 id들이 들어가 두 테이블의 레코드들이 어떻게 짝지어졌는지를 나타냅니다. 이러한 관계 테이블은 필요에 따라 얼마든지 생길 수 있습니다.

3. 관계를 이용한 제작

실제로 작성되는 결과물은 사용하는 개발환경에 따라 다르겠지만(사용되는 문법이 다르기 때문에), 테이블의 구조는 어느 환경에서나 동일할 것이기 때문에 이렇게 먼저 테이블을 정의하고 진행할 수 있었습니다. 사실 구조를 정하는 것 자체는 오래 안걸리고, 테이블에 어떤 요소를 넣을지에 대해 토론한 시간이 대부분이었긴 합니다만😓, 그래도 테이블간의 관계를 설정하는 것은 매우 중요합니다. 이제 슬슬 구현의 시간이 다가오고 있습니다…!