웹프로그램 연구(III) 데이터베이스의 설계

[목차(도우미)]

필드의 저장

각종 필드(Field)의 저장은 데이터베이스를 이용한다.
이때 각 필드에 들어가는 내용중에는 여러번 반복되는 내용(우선순위등)과 유일한 내용(할일등)이 있다. 반복되는 필드에 관하여는 표시 항목과 내부 토큰을 쌍으로 지정해서 설계해야 효율적이다.
ID
Expression
1
Important
2
Normal
3
Low

이같이 하면 표시명칭이 바뀌어도 변환테이블을 바꾸어 주면 모든 표시를 바꿀수 있다. 데이터베이스 내부에는 ID만을 기록하기 때문이다. 그러면 SQL문이 약간 복잡하게 된다.

SQL예
select (select Expression from priority where tableMain.priorityID=ID) as priorityIDed from tableMain

SQL의 저장

대개의 데이터베이스 프로그램을 보아온 바에 의하면 SQL문을 작성하는 부분이 소스코드상에서 길고 너저분하게 되어있다. 어떤 언어로 프로그램을 하든지 SQL문 만큼은 소스상에서 문자열을 붙이고 떼고 하는 처리로 복잡하게 되어있음을 보아왔다.

그러나 SQL문 자체의 본질은 문자열이므로 이 문자열을 데이터베이스에 넣어두고 필요에 따라 꺼내서 쓰는 것이 더 편리하다.

SQL 원형의 예
key
sql
getPriority
select (select first(Expression) from priority where tableMain.priorityID=%d) as priorityIDed from tableMain

그리고 소스상에서 %d를 ID값으로 치환해서 쓰면 소스상에는 간단히 SQL을 이용할수 있다.

SQL예
result = recordset.Execute("select sql from querySql")
S = Replace(result,"&d", ID)


(신간선: 기차도 연결해서 달리면 여러모로 장점이 있다. 안개가 자욱해서 주위가 하얗다.)

연결테이블의 작성

데이터베이스에 저장할 내용에 따라 고정 변환테이블과 운용할 때 증가하는 가변테이블 파일을 분리한다. 그리고 연결 테이블을 추가하여 한개의 데이터베이스 처럼 운용하면 된다.
연결테이블을 사용하면 각각의 데이터베이스 파일이 네트웨크상에 있는지 같은 디렉토리에 있는지 소스상에서 의식할 필요가 없다.
by 금메달.아빠 on 2010. 5. 23. 00:39