Şimdiye kadar birçok veritabanı (MySQL) web uygulaması yazdım ama her zaman yapımın biraz sakar olduğunu düşünüyorum. Burada tavsiyelerde bulunmayı umarak kullandığım programlama / tasarım modelini geliştirmek istiyorum. Özellikle, veritabanının (şema) uygulanmasını kapsayan OOP yaklaşımını tamamlayan bir yapı bulamıyorum. ben
Sorumun en iyi örnekle açıklanabileceğini düşünüyorum. Şimdi kullandığım 2 Fatura nesnesi / sınıfı olduğunu söyleyen 2 yaklaşım var:
birincisi statik üye işlevlerini kullanmaktır
class Invoice
{
int id;
string ref;
int customer_id;
date created;
date due;
static id create();
static bool update(id, field1, field2, ...);
static bool delete(id);
static bool get(id);
};
İkinci yaklaşım, her şeyi bir veritabanı nesnesine koymaktır:
class Database extends ProprietaryDBConnecter, Singleton
{
id createInvoice();
bool updateInvoice(id, field1, field2, ...);
bool deleteInvoice(id);
bool getInvoice(id);
id createCustomer();
bool updateCustomer(id, field1, field2, ...);
bool deleteCustomer(id);
bool getCustomer(id);
// etc...
}
Ben her iki yolu (SQL) üye fonksiyonları "view" dan çok ayrılmaz olduğunu bulmak, "view" sınıfları ne olması gerektiğini belirler ve bu nedenle belge / görünüm mimarisi kırmak gibi görünüyor.
Ayrıca, örneğin bir SELECT ifadesinin yalnızca neyin gerekli olduğunu seçmesi gibi bir verimsiz gibi görünmektedir, ancak Fatura'da üye değişkenlerin varlığı "garantili veriler" anlamına gelmektedir.
Soruyu net bir şekilde açıklayıp açıklamadığımı bilmiyorum, Bu mimariye / tasarım modeline / bilindiği gibi diğer en iyi yaklaşımlar nelerdir?
Tavsiyeler için teşekkürler