Prendi in considerazione un tutorial comune per linguaggi di programmazione orientati agli oggetti come C ++ o Java: crea un semplice sistema di elaborazione degli ordini con oggetti che rappresentano account, ordini, articoli ecc. (O qualcosa di più o meno equivalente). Ha un perfetto senso intuitivo, ma l'elefante al tavolo da pranzo è che non è reale perché si tratta di oggetti in memoria; in un sistema reale, gli account, gli ordini ecc . non vivono in realtà nella memoria in primo luogo, vivono in un database, con la rappresentazione della memoria solo un suo specchio di breve durata.
Puoi scrivere un sacco di codice per leggere e scrivere dal database, ma è così noioso e soggetto a errori che nessuno lo fa davvero.
Tutti finiscono per usare un ORM, ma quelli sono così problematici di per sé che un famoso documento li chiama "il Vietnam del nostro settore".
Non penso che sia una discrepanza tra oggetto e relazione tanto quanto una discrepanza tra il linguaggio di programmazione e il database essendo cose separate che non si conoscono . Congettura: la soluzione è quella di avere un unico linguaggio che sia sia il linguaggio di programmazione che quello della query del database, il che a sua volta richiederebbe che il runtime della lingua sia anche il database e che il compilatore JIT sia anche l'ottimizzatore delle query.
Quindi questo è il riassunto dei problemi che lo vedo. La mia domanda è: qualcuno ha ancora
In realtà costruito un tale sistema unificato
Ho provato ma non sono riuscito a costruire un tale sistema unificato
Ho scritto qualcosa di sostanziale sull'argomento di come faresti per costruirlo, o perché o perché no
Ti viene in mente un modo alternativo per risolvere il problema?