1

주제: DB Schema Manager

이 글그 해결책을 보고 떠오른 생각입니다.

테이블 개수를 일일이 확인하는 것 자체가 그다지 좋은 방식은 아닌 것 같군요. 누가 임의로 DB 구조를 추가/변경했을 경우 잠재적 버그가 발생하는 셈입니다.

따라서 DB 자체를 추상화하고 있듯 DB Schema를 관리해주는 녀석이 하나 있다면 좋지 않을까 합니다.

새로운 스키마를 정의하려면 그 Schema 클래스를 이용해서 선언하고, Schema 클래스는 static처럼 작동하면서 현재 필요한 테이블들의 개수를 구해준다든가, 가능하다면 버전 관리까지 겸해준다면 좋겠지요.
Schema를 변경할 일이 있다면 그 Schema 클래스만 고치면 알아서 해결되도록 일원화하자는 것이죠. DB Query의 추상화와 함께 진정 DBMS 선택이 자유로워지려면 Schema 또한 그래야 하지 않나 싶습니다.
(이걸 이용해서 플러그인들이 DB를 편하게 접근할 수 있도록 하는 wrapper를 만들 수도 있겠구요.)

구체적인 구조는 좀더 생각을 해봐야겠지만 DB 추상화가 어느 정도 완료되고 나면 추진해봄직하다는 생각이 들어서 써봤습니다. smile

ps. 개인적으로는 Django의 DB Model이 맘에 드는 편입니다만 php에서도 lazy evaulation이 되던가요?

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.