object-relational mappers
Diez B. Roggisch
deets at nospam.web.de
Thu Apr 3 10:49:57 EDT 2008
Bruno Desthuilliers schrieb:
> Jarek Zgoda a écrit :
>> Bruno Desthuilliers napisał(a):
>>
>>> Now my own experience is that whenever I tried this approach for
>>> anything non-trivial, I ended up building an "ad-hoc,
>>> informally-specified bug-ridden slow implementation of half of "
>>> SQLAlchemy. Which BTW is not strictly an ORM, but primarily an attempt
>>> at a better integration of SQL into Python. So while it may feel like
>>> learning the inner complexities of SQLALchemy (or Django's ORM which is
>>> not that bad either) is "wasting brain cells", MVHO is that it's worth
>>> the time spent. But YMMV of course - IOW, do what works best for you.
>>
>> I like OR mappers, they save me lot of work. The problem is, all of them
>> are very resource hungry, processing resultset of 300k objects one by
>> one can effectively kill most of commodity systems. This is where raw
>> SQL comes in handy.
>
> The problem here is not about how you build your query but about how you
> retrieve your data. FWIW, SQLAlchemy provides quite a lot of "lower
> level" SQL/Python integration that doesn't require the "object mapping"
> part. "raw SQL" is fine, until you have to dynamically build complex
> queries from user inputs and whatnot. This is where the "low-level" (ie:
> non-ORM) part of SQLAlchemy shines IMHO.
The same can be said for SQLObjects SQLBuilder. Even if I ended up
generating SQL for some query that didn't touch the ORM-layer, it helps
tremendously to write e.g subqueries and such using python-objects
instead of manipulating strings. They help keeping track of already
referenced tables, spit out properly escaped syntax and so forth.
Diez
More information about the Python-list
mailing list