2011-03-15 5 views
0

1 년 전 PHP로 웹 플랫폼을 개발했으며, 필자가 쓴 데이터 액세스 레이어를 자랑스럽게 생각합니다. 그 이후로, 나는 동일한 개념을 반복해서 사용하기 시작했다. 하지만 지금은 전체 데이터베이스 액세스 코드를 다시 작성하는 대신 다음 단계로 넘어가려고합니다. 제 SQL 스키마를 구문 분석하고 DAL 클래스를 자체적으로 생성하는 도구를 만들고 싶습니다.스키마 밖으로 PHP DAL

코드를 생성하기 위해 SQL 스키마에서 필요한 정보는 다음과 같습니다 실제로

* Tables 
* Fields 
* Fields types 
* Foreign keys 

, 나는 몇 가지 SQL 파서 고개를 몇 가지 물건을 발견하지만 난 다르게 이렇게 결정에 의해 끝났다. SQL 스키마 자체에서 코드를 생성하는 대신 데이터베이스 실제 스키마에 따라 작성하는 메타 데이터에서 생성합니다. 그것은 내가 달성하고 싶은 물건의 종류를 말한다 그냥 빨리 사고의 결과이다, 이것은 전혀 사양하지

TableName[ 
    FieldA : Type; 
    FieldB: Type; 
] 
TableName2[ 
    FieldA : Type, FK(TableName.FieldA); 
    FieldZ: Type; 
] 

:

나는 같은 것을 생각했다.

질문은 지금 : 파이썬에는 내장 API가 있습니까, 아니면 위에서 언급 한대로 내 스키마를 정의 할 수있는 일부 형식을 구문 분석하는 데 사용할 수있는 제 3 자 라이브러리가 있습니까? 나는 바퀴를 재발 명하고 싶지 않고, 필자 자신의 파서를 작성하는 데 전혀 관심이 없다. 내가 원했던 것은 최대한 빨리 기본 도구를 얻는 것이다.

감사

답변

1

immitiate 생각은 단순히 테이블을 정의하는 일반 파이썬 구문을 사용하는 것입니다 : 등등

{ 
    'TableName': {'FieldA': ['Type', FK(..)], 'FieldB': ['type']} 
} 

하고 있습니다.

그러나 how django does it을 볼 수 있습니다. 클래스를 정의하고 그 클래스에 속성을 추가하면 모델을 나타냅니다. 그런 다음이 모델을 사용하여 SQL 문을 생성 할 수 있으며 유효하며 쉽게 확장 할 수있는 Python 코드입니다.

다른 제안은 JSON 구조를 사용하여 데이터를 표현한 다음 그 데이터를 구문 분석 할 수있는 코드를 작성하는 것입니다. 이것은 기존의 파이썬 구문을 사용하는 것과 비슷하지만 다른 언어에서도 쉽게 구문 분석 할 수 있습니다 (위에 제공된 예제는 상자에서 '바꿀 수있는'유효한 JSON 구문입니다.)

+0

남자 ... JSON이 내 마음에 뛰어 들지 않았다는 것을 믿을 수 없어. 너 정말 그래! 고마워. – CoolStraw