주제: DB Schema Manager
테이블 개수를 일일이 확인하는 것 자체가 그다지 좋은 방식은 아닌 것 같군요. 누가 임의로 DB 구조를 추가/변경했을 경우 잠재적 버그가 발생하는 셈입니다.
따라서 DB 자체를 추상화하고 있듯 DB Schema를 관리해주는 녀석이 하나 있다면 좋지 않을까 합니다.
새로운 스키마를 정의하려면 그 Schema 클래스를 이용해서 선언하고, Schema 클래스는 static처럼 작동하면서 현재 필요한 테이블들의 개수를 구해준다든가, 가능하다면 버전 관리까지 겸해준다면 좋겠지요.
Schema를 변경할 일이 있다면 그 Schema 클래스만 고치면 알아서 해결되도록 일원화하자는 것이죠. DB Query의 추상화와 함께 진정 DBMS 선택이 자유로워지려면 Schema 또한 그래야 하지 않나 싶습니다.
(이걸 이용해서 플러그인들이 DB를 편하게 접근할 수 있도록 하는 wrapper를 만들 수도 있겠구요.)
구체적인 구조는 좀더 생각을 해봐야겠지만 DB 추상화가 어느 정도 완료되고 나면 추진해봄직하다는 생각이 들어서 써봤습니다. ![]()
ps. 개인적으로는 Django의 DB Model이 맘에 드는 편입니다만 php에서도 lazy evaulation이 되던가요?
내면에 귀를 기울여 보자.