2013-07-25 19 views
5

Sto creando un'applicazione di dashboard per un reparto contabilità.Modellazione di oggetti senza ID nei dati di brace

L'utente seleziona un mese e visualizza tutte le società che soddisfano determinati criteri in quel mese. I percorsi saranno

/:month_id       a summary page 
/:month_id/companies    more details about each company 
/:month_id/companies/:company_id all details about a single company 

Idealmente mi piacerebbe avere un modello che hasManycompany modelli month. L'unico problema è che le aziende si presenteranno in più mesi.

Correggetemi se ho torto, ma questo non significa che se un'azienda è già nel negozio, quando viene richiesto un nuovo mese, prenderà i dati della società dallo store anziché dal server? I dati saranno diversi per ogni mese, quindi questo non funzionerebbe per me.

Suppongo che in questa applicazione l'ID di ciascuna azienda sia realmente il loro numero intero, intero più il mese selezionato. Quindi, un modo per aggirare questo sarebbe dare ad ogni azienda un id come '15-Mar-2013'.

In alternativa, potevo semplicemente passare i dati di ogni mese companies attraverso grezzi e fare le trasformazioni sulla matrice semplice. Il problema con questo, però, è che dovrò calcolare gli aggregati sulle aziende (oltre all'intero mese), e sarebbe molto bello tenere separate queste due cose. Se avessi un modello aziendale completamente separato, potrei semplicemente andare in città all'interno del modello:

App.Company = DS.Model.extend({ 
    month: DS.belongsTo('App.Month'), 
    name: DS.attr('string'), 
    contracts: DS.hasMany('App.Contract'), 

    totalRevenue: function() { 
     return this.get('contracts') 
      .filterProperty('type', 'newSetup') 
      .getEach('feeChange').reduce(function(accum, item) { 
       return accum + item; 
      }, 0); 
    }.property('[email protected]'), 

    ...additional aggregation functions 
}); 

Cosa ne pensi?

+1

Se i dati per l'azienda sono diversi ogni mese, il record non è un'azienda. È un 'CompanyReport' o qualcosa del genere. –

+0

Concordato, ma ancora - come risolvere il problema? Assegnare un id arbitrario al 'CompanyReport'? Il 'CompanyReport' è essenzialmente un'istantanea filtrata di alcuni set di dati del server. –

risposta

0

Per me non ha alcun senso che siano mesi le aziende, che è quello che indica la tua relazione month[1]->[N]company.

Quello che vuoi dire è che stai cercando tutte le aziende che hanno determinati criteri che si verificano entro un mese. Il mese scelto è solo una parte dei criteri di ricerca.

+0

Concordato ma è più un "MonthlyReport", e per me ha senso. In tal caso, come risolvere il problema? –

+0

Se si cerca un report con segnalibro, probabilmente farei qualcosa come "/ aziende/rapporti /: nomeRapporto /: aaaa /: mm" per identificare il report specifico. O "/ reports/periodic /: yyyy /: mm /: reportName" o "/ reports/monthly /: yyyy /: mm /: name ' –

+0

Sto usando: month-id come: aaaa /: mm (sta andando per essere qualcosa come 'Jan-2013'). Quindi non so ancora come risolvere il problema. –

Problemi correlati