2013-07-25 11 views
5

Buduję aplikację na desce rozdzielczej dla działu księgowości.Modelowanie obiektów bez identyfikatora w danych embera

Użytkownik wybierze miesiąc i zobaczy wszystkie firmy, które spełniają określone kryteria w danym miesiącu. Trasy będą

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

Idealnie byłoby mam model, który hasManycompany modele month. Jedynym problemem jest to, że firmy pojawią się za kilka miesięcy.

Popraw mnie, jeśli się mylę, ale czy to nie oznacza, że ​​jeśli firma jest już w sklepie, gdy zażąda nowego miesiąca, pobierze dane firmy ze sklepu, a nie z serwera? Dane będą się różnić w każdym miesiącu, więc to nie będzie działać dla mnie.

Przypuszczam, że w tej aplikacji identyfikator każdej firmy jest w rzeczywistości ich normalnym, całkowitym id plus wybrany miesiąc. Jednym sposobem obejścia tego byłoby nadanie każdej firmie identyfikatora takiego jak '15-Mar-2013'.

Alternatywnie, mogę po prostu przekazać dane z każdego miesiąca o wartościach companies za pośrednictwem nieprzetworzonych i wykonać transformacje w prostym zestawie. Problem polega jednak na tym, że będę musiał obliczyć dane zagregowane w firmach (oprócz całego miesiąca) i byłoby bardzo miło zachować te dwie rzeczy oddzielnie. Gdybym miał zupełnie oddzielny model Firmy, mógłbym po prostu udać się do miasta w modelu:

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 
}); 

Co myślisz?

+1

Jeśli dane dotyczące firmy różnią się co miesiąc, rekord nie jest spółką. To "CompanyReport" lub coś takiego. –

+0

Uzgodnione, ale nadal - jak rozwiązać problem? Przypisać dowolny identyfikator do "CompanyReport"? "CompanyReport" to w zasadzie przefiltrowana migawka niektórych danych serwera. –

Odpowiedz

0

To nie ma dla mnie żadnego sensu, że miesiące własnych firm, co jest tym, co wskazuje twoja relacja month[1]->[N]company.

To, co chcesz powiedzieć, to że szukasz firm, które mają określone kryteria w ciągu miesiąca. Wybrany miesiąc jest tylko częścią kryteriów wyszukiwania.

+0

Zgadzam się, ale jest to bardziej "Miesięczny raport", a dla mnie ma to sens. W takim przypadku, jak rozwiązać problem? –

+0

Jeśli szukasz raportu księgowego, prawdopodobnie wykonałbym polecenie "/ company/reports /: reportName /: yyyy /: mm" w celu zidentyfikowania konkretnego raportu. Lub "/ reports/periodic /: rrrr /: mm /: reportName" lub "/ reports/monthly /: rrrr /: mm /: name" –

+0

Używam: month-id: yyyy /: mm (it's going być czymś takim jak "Jan-2013"), więc wciąż nie wiem, jak rozwiązać problem. –

Powiązane problemy