2010-08-07 22 views
6

Şu anda hafif hafif SQL soyutlama modüllerine bakıyorum. İş akışım, genellikle SELECT sorgularını elle yazdığım ve INSERT/UPDATE sorgularını karmaları alan alt dizinler aracılığıyla yazıyor.Varsa, SQL :: Interp üzerinden SQL :: dezavantajları nelerdir?

Bu modüllerin her ikisi de ihtiyaçlarım için mükemmel görünüyor ve karar vermekte zorlanıyorum. SQL::Interp talepleri SQL::Abstract SQL'de tam bir ifade veremiyor ancak başka hiçbir farkı tartışmıyor.

Herhangi bir dezavantajı var mı? Eğer öyleyse, hangisi?

+1

Ayrıca ** Fey ** modülü de var ... –

cevap

3

SQL :: Interp ile konuşamıyorum, ancak SQL :: Abstract kullanıyorum ve oldukça iyi. DBIx::Connector ve düz DBI ile bağlantılı olarak, sistemimde ORM kullanımını çok az olumsuz etkileyebildim.

İçine çalıştırmak tek sınırlamalar

o basitçe oluşturulan sorguya ekleyerek yapmak kolay olsa (doğrudan sorgular GROUP BY yazmak mümkün değildir ve SINIR sorgular uzantısı SQL::Abstract::Limit tarafından ele olmasıdır.

3

Bir yıldan uzun bir süre boyunca SQL :: Abstract'ı kullandım ve sonra da bu yana sıkıştığım SQL :: Interp'a geçtim:

SQL :: Özet karmaşık cümleleri ile sorun yaşadı. "AND", "OR" veya aslında parantez anlamında zihinsel olarak çevirdiğiniz "(" "[" ve ​​{"karakterleri olan bir yuvaya sahip olursunuz.

SQL :: Interp'de böyle bir sınırlama yoktur ve orta gösterimi kullanmaz. SQL'iniz, istediğiniz yerde bağlama değişkenlerine sahip SQL'e benziyor. Basit soruların yanı sıra karmaşık sorgular için de çalışır. SQL :: Interp, özellikle DBIx::Simple'un yerleşik desteğiyle birlikte kullanım için hoş buluyorum. DBIx :: Simple + SQL :: Interp, ham DBI kullanımı için kolay ve sezgisel bir alternatiftir. Kombinasyonu 100.000k + LoC mod_perl web uygulamasında kullanıyorum.