我目前有一個用Perl編寫的網站,使用Mojolicious和Mojo::Pg。它所做的一件事就是引入並顯示來自忍者座的溫度傳感器的數據。我在Postgres有四張桌子,outdoor_temperature
,outdoor_humidity
,而且在室內也是一樣。這些表是這樣的:Sails.js中的單個模型的多個表?
Column | Type | Modifiers
--------+---------+-----------
time | bigint | not null
value | numeric | not null
date | date | not null
凡time
以毫秒爲單位紀元值(每分鐘一個記錄),value
是溫度或溼度,date
就是這樣(所以每次記錄某一天有date
列中的值相同)。
我正在使用Node和Sails.js重寫網站,主要是爲了學習的機會,而且我在這裏做事情的最佳方式被困住了。在它的Perl化身中,我有一個針對每個忍者塊相關功能的單獨子程序(顯示今天的當前溫度,顯示給定日期的最高/最低等),並且我通過它在哪個位置(室內或室外),一切都從這裏開始,像這樣:
sub current {
my ($self, $table) = @_;
return $self->pg->db->query("select time, value from $table where time = (select max(time) from $table)")->hash;
}
但是對於Sails/Waterline,它似乎是一個模型只包含一個表。在我的Perl版本的任何表格之間沒有任何連接,只是在每個單獨的表格上的一些半複雜的SQL查詢,我可以用.query
在Sails中完成,但我不知道如何在Sails中保留相同的設置,而無需在檢查室內和室外表格時複製一堆代碼。
還是我在想這個完全錯誤,還有一個更好的方法來完成這一切?