2010-06-01 3 views

답변

8

ORM은 몇 가지 이유로 인기가 있습니다. 예를 들어 어떤 사람들은 SQL을 배우지 않고 ORM은 다른 SQL 언어로 쉽게 이식 할 수 있으며 대부분 OOP 스타일의 응용 프로그램에보다 원활하게 들어갈 수 있습니다. 이 아닌 -SQL 구현 (예 : Google App Engine으로 Django 앱을 이동하는 것이 스토리지 액세스 레이어가 SQL 문에 의존하는 경우 훨씬 더 많은 작업을 수행 할 수 있습니다. ORM에 의존하기 때문에 조금 줄어 듭니다. , 필요한 포팅 작업).

SQLAlchemy는 Python에 대해 내가 아는 가장 강력한 ORM입니다. 이것은 매우 추상적 인 선언적 방법에서 프로파일 링 작업이 결정한 일부 쿼리에서 실제 SQL을 주입하는 것까지 몇 가지 가능한 수준에서 작업 할 수있게 해줍니다 큰 차이를 만듭니다 (대부분의 사람들은 대부분 OOP와 관계형을 중재하는 중급 수준에서 다른 ORM과 마찬가지로 사용합니다).

당신은이 문제에 대해 제 개인적인 의견을 물어 보지 않았습니다. 이는 위에서 요약 한 인기있는 것 중 다소 힘든 일입니다. 나는 어떤 종류의 "코드 생성기"도 결코 좋아하지 않았습니다. 모든 것이 순조롭게 진행될 때 ...하지만 생성기가 제공하려고하는 추상화 수준 아래에서 발생하는 문제로 인해 성능 병목 현상을 포함하여 문제를 디버깅 할 때 관심을 갖고 지불 할 수 있습니다. 나는 그런 PostgreSQL을 같은 좋은 관계형 엔진을 사용할 수있는 기회를 얻을 때

, 나는 전반적으로 내가 (많은 훌륭한 자질에도 불구하고, SQLAlchemy의를을주게됩니다) 사이에 어떤 ORM와 것보다 더 생산적 해요 생각합니다. 그러나 관계형 엔진이 그다지 좋지 않은 경우 (예 : MySQL을 좋아하지 않았을 때) 또는 비 관계형 배포로의 이식이 중요한 고려 사항 일 때 사례가 다르다는 것을 인정해야합니다.

실제 질문으로 돌아가서 전반적으로 SQLAlchemy 습득에 많은 시간을 투자하는 것이 좋은 생각이며 시간을 많이 소비했다고 생각합니다.

1

이전에 SqlAlchemy와 같은 ORM을 사용 해본 적이 없다면 Python 방식을 배우는 한 배우는 것이 좋습니다. 그 밖의 것이 없다면 평범한 SQL과 비교할 때 언제 어디서 사용할 것인지를 더 잘 결정할 수 있습니다. 나는 당신이 그것에 많은 시간을 투자해야한다고 생각하지 않는다. SQLAlchemy에 대한 문서는 괜찮습니다. 문제가 생기면 언제든지 도움을 요청할 수 있습니다.