Saya telah menulis banyak aplikasi web database (MySQL) sejauh ini, tetapi saya selalu berpikir struktur saya agak canggung. Saya ingin memperbaiki pola pemrograman / desain yang saya gunakan, berharap ada saran di sini. Khususnya, saya tidak dapat menemukan struktur yang melengkapi pendekatan OOP yang merangkum implementasi database (skema). saya
Pikirkan pertanyaan saya dapat dijelaskan dengan contoh terbaik. Ada 2 pendekatan yang saya gunakan sekarang mengatakan saya memiliki objek / kelas Faktur:
pertama adalah menggunakan fungsi anggota statis
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);
};
Pendekatan kedua adalah meletakkan segala sesuatu di objek basis data:
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...
}
Saya menemukan bahwa kedua cara fungsi anggota (SQL) sangat tidak dapat dipisahkan dari "view", dalam "view" menentukan apa yang perlu dimiliki oleh kelas dan karenanya memecah dokumen / view architecture.
Selain itu, sepertinya tidak efisien misalnya pernyataan SELECT hanya boleh memilih apa yang diperlukan, tetapi keberadaan variabel anggota dalam Faktur tampaknya menyiratkan "data yang dijamin".
Tidak tahu apakah saya menjelaskan pertanyaan dengan jelas, Apa saja pendekatan terbaik lain untuk arsitektur / pola desain / apa-itu-dikenal-sebagai?
Terima kasih atas sarannya