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:)