Come devo gestire un oggetto che ha copie di un altro oggetto?

-1

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

    
posta Jonathan 02.08.2017 - 22:25
fonte

1 risposta

0

Ho finito per serializzare le copie (usato Django Rest Framework) e l'ho salvato come una semplice stringa sotto Company . Poi ho aggiunto un metodo deserialize() che legge questo campo e ricostruisce l'oggetto.

    
risposta data 06.08.2017 - 01:53
fonte

Leggi altre domande sui tag