İş katmanı, veri katmanı, sorguları koymak için?

2 Cevap php

Ben veritabanındaki her tablo için ayrı sınıflar vardır bir veri erişim katmanı var. Her sınıf onlar, oluşturmak, güncellemek, silmek ve işlevleri getirme var, tablodaki bir satır başvuran nesnelerin yapar. Hepsi bir DBObj sınıfını genişletmek. Benim sorum, ben SELECT * FROM table için bir sorgu yazmak istiyorum demek ve sahip olduğu bir fonksiyonun içinde. Nerede bu koymak için en iyi yer neresidir? Kendi veri katmanı sınıflarında iş katmandaki veya gruptaki ilgili tüm işlevleri? Onun PHP bu MySQL kullanarak önemli değilse.

2 Cevap

Veri katmanında SQL sorguları koydu.

Gibi bir sorgu için SELECT * FROM table, modelin kendisi, ya da bir model yöneticisi nesne yöntemi bir sınıf yöntemi, tarzı bir meselesi olduğunu yapmak ister.

Ama iş mantığı veritabanı şeması keyfi ayrıntıları soyutlanmış olmalıdır. Iş katmanı sadece veri almak için kullanılan olacak olan özel bir sorgu hakkında önemsemeden, bir modelin tüm örnekleri için veri katmanı sormak gerekir.

Ben sadece soru buldum, ve ben bakış başka bir noktaya getirerek düşündüm. Çoğu uygulamalarda (her demeyeceğim, ama kendisine yakın) gereken bir veri soyutlama katmanı oluşturmak, çoğu kez bir ORM çerçevesi olarak tanımlanmaktadır.

Dikkatli olsa, Veri Erişim Katmanı (DAL) mimari yaklaşıma bağlı olarak, etki alanı Katman veya iş mantığı katmanı ile karıştırılmamalıdır. Bu konuda derin almak istiyorsanız, ben Martin Fowler's articles, ayrıca ben yaptım this blog yazısı bir süre önce, neredeyse okuyabilir için her geliştirici, siz alabilirsiniz gerektiğini düşünüyorum M. Fowler gibi önemli, ancak ben bu konuda bazı yansımaları yaptı.

Best regards, David