2016-11-18 163 views
-1

我想設計一個智能供熱設備的房屋監測系統沒有sql數據庫。該建築有一個主要供暖系統,通過跟蹤公寓內的溫度爲每間公寓供暖。出於這個原因,每間公寓都有一個溫度計,它不斷向主系統發送溫度。這個想法是讓一個管理員可以跟蹤來自主系統的所有報告,還可以分別查看每個公寓的溫度。租客只能看到他自己的公寓溫度。 管理員可以管理許多建築物,一棟建築物可以有許多公寓,只有一個主要的智能供暖系統。現在我假設一間公寓只能有一個溫度計。我可以用sql設計數據庫,但是我必須使用NoSql,而且我沒有太多經驗來設計複雜的nosql數據庫。 我試圖設計建築集合,但我認爲這是完全錯誤的。我應該爲管理員和租戶分別收集建築和公寓的收藏,如果是,那麼如何加入?也許有人知道一些例子,我可以看看並有一些想法? `{ 建築:1, 地址: '地址這裏', 公寓: {NO: '1',地板: '0'},
{NO: '2',地板: '1'} , {無: '3',樓: '2'}設計智能設備管理系統的NoSql數據庫

], 
thermometer : [ 
    { id : ObjectID('AAAA'), apartmentNo: '3'},   
    { id: ObjectID('F17C'), apartmentNo: '2'}, 
    { id: ObjectID('D2AA'), apartmentNo: '1'} 

], 
mainHeatingSys: [ 
    { thermId : ObjectID('AAAA')},   
    { thermId: ObjectID('F17C')}, 
    { thermId: ObjectID('D2AA') 
    // etc 
] 

}`

+0

有*很多*的方式設計一個面向文檔的ed數據庫,這麼多將取決於你的應用程序的查詢需求。一個非常廣泛的意見徵求類型的問題,以及針對StackOverflow的主題。僅供參考您的問題是以文檔爲中心的;沒有「nosql」模式,因爲有許多NoSQL數據庫的類型:鍵/值,文檔,列,圖形。 –

+0

不明白'取決於你的應用的查詢需求'嗎?我描述了我需要的以及管理員和租戶應該從db獲得什麼。如果我可以通過我定義的規則檢索數據(管理員應該獲得主系統和每個公寓數據,租戶只有他自己的公寓數據),我不關心我使用哪種方式,除非它使我的應用程序工作更有效。從我提供的這個信息可以很容易地創建mysql數據庫,所以我認爲與NoSql相同。 – Vytautas

回答

-1
var adminschema = new Schema({ 
     name: { type: String, required: true }, 
     email: { type: String, required: true, index: { unique: true }, lowercase: true }, 
     password: { type: String, required: true } 
)} 
    var heatingSystemschema = new Schema({ 
      number: { type: Number, required: true }, 
      building:[{type: Schema.Types.ObjectId}] // objectid of building 
)} 
    var buildingschema = new Schema({ 
     number: { type: Number, required: true }, 
     address: { type: String, required: true}, 
     appartment:[{type: Schema.Types.ObjectId}] // array of objectid of appartment 
)} 


    var appartment = new Schema({ 
     number: { type: Number, required: true }, 
     floor: { type: Number, required: true}, 
     thermometer:{type: Schema.Types.ObjectId} // only one thermometer for each appartment so only objectId 
)} 

var thermometer = new Schema({ 
      temprature: { type: string, required: true }, 

    )} 

只是一個想法如何ü可以讓烏爾數據庫設計

+0

這個問題本身是非常廣泛和意見徵求,沒有正確的答案。只是發佈一個示例模式不會有幫助,特別是因爲您不知道應用程序的詳細信息。另外,OP承認在這方面沒有任何熟練程度,也不能說出你的模式有什麼好(或不好)。不僅如此:你正在顯示代碼,而不是一般的文檔整形(把諺語的購物車放在馬前面)。 –

+0

@DavidMakogon:你說的對,我們不能給他適當的幫助,但是,我只是給他提供NOSQL數據庫模式設計的想法,因爲他說他不是他曾經使用過的SQL。 – Sam

+0

好的,那麼沒有NoSQL經驗的OP如何理解您提出的問題?每個恆溫器如何處理多個讀數?你如何存儲密碼(甚至不是OP問題的一部分)?爲什麼甚至選擇一個文檔數據庫,比如圖形數據庫,?什麼是你引入的'Schema'類,它沒有提示它來自哪個庫?單收藏或多收藏呢?我不明白這個答案如何幫助。 –