Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    Come gestite le classi Elemento/Database?

    Salve a tutti, sono curioso di sapere quale metodo di salvataggio nel db (dei due che elencherò tra poco) utilizzate più spesso per le vostre applicazioni.
    So che non c'è mai un metodo assolutamente migliore di un altro, ecco perchè vorrei affrontare con voi l'argomento e capire come migliorare/utilizzare le due ipotesi:

    La prima prevede una classe Database e N classi che rappresentano delle entità da inserire nel database (ad esempio classe User).
    In questa ipotesi passo al metodo (ad esempio) insert() della classe Database un oggetto User, dal quale prenderà le informazioni e le riporterà nel database (ogni oggetto da inserire nel database, come User, implementa un'interfaccia chiamata DBElement che aggiunge all'oggetto i metodi necessari a restituire le informazioni per il DB)
    Il vantaggio di questa struttura è che posso creare 'infiniti' elementi senza dover mai richiamare il database al loro interno, ma in questo caso ho delle regole abbastanza rigide da rispettare per far si che l'oggetto venga riconosciuto per bene dalla classe Database.

    La seconda ipotesi è contraria alla prima, ovvero creo N oggetti e implemento all'interno di ognuno un database in modo da gestire per ciascuno le operazioni di CRUD. Una variante di questo metodo prevede di creare un database esterno alle classi e passarlo come parametro. (Anche qui vorrei sapere quale dei due metodi preferite utilizzare).

    Sono soluzioni entrambe valide ma vorrei ragionare con voi su come/dove va usata una e come/dove va usata l'altra.
    Spero non passi come una domanda noiosa
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Io ho 1 classe Database che ha metodi a basso livello per la gestione delle query, il fetch dei record, la gestione degli errori.

    Nell'applicazione la classe Database viene istanziata un'unica volta, a livello di bootstrap dell'applicazione. Praticamente ho una classe Init statica che istanzia la classe Database, in qualsiasi punto dell'applicazione recupero l'instanza del database mediante un metodo statico. Questo mi evita di dover passare l'istanza del database come parametro.

    Poi ho N classi che sono il model (es: User) che implementano i metodi CRUD. Ogni metodo come prima istruzione fa un Init::GetDB() e quindi recupera l'istanza statica del Database
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.