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 hasMany
company
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?
Jeśli dane dotyczące firmy różnią się co miesiąc, rekord nie jest spółką. To "CompanyReport" lub coś takiego. –
Uzgodnione, ale nadal - jak rozwiązać problem? Przypisać dowolny identyfikator do "CompanyReport"? "CompanyReport" to w zasadzie przefiltrowana migawka niektórych danych serwera. –