Spero davvero che questo sia un buon posto per chiederlo poiché le risposte potrebbero essere soggettive, ma qui il mio problema:
Questo è probabilmente irrilevante, ma sto lavorando con Python e Django qui.
Ho il Django User e ogni utente è correlato a Company . L'utente può creare una società e salvare diverse copie della Società dopo aver apportato modifiche ai dettagli della società. Quindi il mio primo pensiero è di creare una relazione uno-a-molti tra User e Company Quindi ogni volta che l'utente apporta modifiche alla società e salva, posso creare un nuovo oggetto e salvarlo sotto l'utente. Questo, tuttavia, sembra un cattivo progetto (per esempio, la scalabilità). Anche la deepcopy per salvare la copia sotto l'utente è un po 'brutta (devo passare attraverso ogni oggetto correlato e approfondirli e ricostruire l'oggetto Company). Un altro problema con questo approccio è che dovrò modificare Django User per aggiungere un metodo come getLatestCompany() o qualcosa del genere.
La mia alternativa: creare una classe proxy (ad esempio Profile ) e avere una relazione 1-1 con User e una 1-M tra Profile e Company . Non mi piace però questo approccio, preferirei se la relazione rimanesse tra User e Company . Quindi il mio codice può apparire come user.getLatestCompany().MethodFromCompany() anziché user.profile.getLatestCompany().MethodFromCompany()
Ci scusiamo per il testo lungo, non vedo l'ora di ricevere qualche input:)