2016-11-18 118 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'类,它没有提示它来自哪个库?单收藏或多收藏呢?我不明白这个答案如何帮助。 –