Ticket #193 (new compito)

Opened 2 years ago

Anagrafiche: MapAndReduceModel per Place e Contact

Reported by: fero Owned by: fspegni
Priority: importante Milestone: Consegna finale
Component: sviluppo Keywords: easy
Cc:

Description

I modelli Place e Contact sono intesi da usarsi come MapAndReduceModel.

Non ho cercato se c'è già un'implementazione disponibile, ma la si può realizzare da 0 senza troppi sforzi.

Lo scenario è questo: fra i modelli di Gasista Felice ci sono Place e Contact. Questi modelli sono intesi da usarsi in questo modo:

  • tante persone e/o gas e/o fornitori possono puntare ad un unico Place
  • tante consegne possono avvenire ad un unico Place
  • tante persone e/o fornitori possono avere contatti Contact condivisi

Quindi bisogna implementare un meccanismo "map and reduce" che si comporti in questo modo:

  1. se sto salvando una nuova istanza --> se ce n'è un'altra esistente con gli stessi parametri --> restituisco quella
  2. se sto modificando una istanza esistente --> se ce n'è un'altra esistente con i nuovi parametri --> restituisco quella , altrimenti --> ne creo una nuova (copy on write)

Poi ci sarà un garbage collector che porta via le istanze che non sono collegate a nulla.

Lo metto come easy perché un'implementazione di questo tipo comporta poche righe di codice, c'è solo da farla con un po' di attenzione.

Questo tipo di implementazione non deve influire nell'import delle fixtures per questo va nella save dei 2 modelli sopracitati.

Note: See TracTickets for help on using tickets.