2016-11-18 14 views
-1

Ich versuche, keine SQL-Datenbank für intelligente Heizgeräte Mietshaus Überwachungssystem zu entwerfen. Das Gebäude verfügt über ein Hauptheizsystem, das jede Wohnung durch Temperaturüberwachung in der Wohnung beheizt. Aus diesem Grund hat jede Wohnung ein Thermometer, das konstant eine Temperatur an das Hauptsystem sendet. Die Idee ist, einen Administrator zu haben, der alle Berichte vom Hauptsystem verfolgen kann und die Temperatur für jede Wohnung getrennt sehen kann. Der Mieter konnte nur seine eigene Wohnungstemperatur sehen. Der Administrator kann viele Gebäude verwalten und ein Gebäude kann viele Wohnungen und nur eine zentrale intelligente Heizung haben. Für jetzt nehme ich an, dass eine Wohnung nur ein Thermometer haben kann. Ich konnte db mit sql entwerfen, aber ich muss NoSql verwenden, und ich habe nicht viel Erfahrung, die diese komplexe nosql db entwirft. Ich habe versucht, Gebäude Sammlung zu entwerfen, aber ich denke, es ist völlig falsch. Sollte ich Sammlungen für Admin und Mieter getrennt haben, dann für Gebäude und Wohnungen, wenn ja, wie dann? Vielleicht kennt jemand ein Beispiel, dass ich einen Blick darauf werfen und ein paar Ideen haben kann? `{ Gebäude: 1, Adresse: 'Adresse hier', Wohnung: [ {no: '1', Etage: '0'},
{no: '2', Etage: '1'} , {no: '3', Etage: '2'}Entwerfen NoSql-Datenbank für Smart-Gerät-Management-System

], 
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

Es gibt * viele * Möglichkeiten, ein Dokument-orient zu entwerfen Die Datenbank hängt von den Abfrageanforderungen Ihrer App ab. Eine sehr breite, meinungsfordernde Art von Fragen und Off-Topic für StackOverflow. Zur Info: Ihre Frage ist dokumentenzentriert; Es gibt kein "Nosql" -Schema, da es viele Varianten von NoSQL-Datenbanken gibt: Schlüssel/Wert, Dokument, Spalte, Grafik. –

+0

Verstehen Sie nicht "abhängig von den Abfrageanforderungen Ihrer App"? Ich habe beschrieben, was ich brauche und was Admin und Mieter von db bekommen sollten. Wenn ich Daten nach der Regel abrufen kann, die ich definiert habe (der Administrator sollte Hauptsysteme und alle Wohnungsdaten erhalten, nur seine eigenen Wohnungsdaten), ist es mir egal, welchen Weg ich nutze, wenn es meine Anwendung effizienter macht. Von dieser Information, die ich zur Verfügung stelle, kann man leicht mysql Datenbank erstellen, also dachte ich, dass das gleiche mit NoSql ist. – Vytautas

Antwort

-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 }, 

    )} 

Nur eine Idee, wie kann u ur Datenbank-Design machen

+0

Die Frage selbst ist sehr breit und meinungsfordernd, ohne richtige Antwort. Wenn Sie nur ein Beispielschema posten, wird das nicht helfen, zumal Sie keine Ahnung von den Details der App haben. Außerdem hat das OP eingeräumt, dass es in diesem Bereich keine Kenntnisse gibt, und wäre nicht in der Lage zu sagen, was gut oder schlecht für Ihr Schema ist. Nicht nur das: Sie zeigen Code, gegen allgemeine Dokumentengestaltung (den sprichwörtlichen Wagen vor das Pferd setzen). –

+0

@DavidMakogon: Sie haben Recht, wir können ihm nicht die richtige Hilfe bieten, aber, ich gebe ihm nur eine Idee von NOSQL-Datenbank-Schema-Design, als er sagte, dass er nicht Nobe er mit Sql gearbeitet hatte. – Sam

+0

Ok, richtig, also wie wird das OP, ohne NoSQL-Erfahrung, die Probleme mit dem, was Sie vorgeschlagen haben, verstehen? Wie behandelt Ihr Schema mehrere Messwerte pro Thermostat? Wie speichern Sie das Passwort (etwas, das nicht einmal Teil der OP-Frage ist)? Warum sollte man sogar eine Dokumentendatenbank über beispielsweise eine Graphdatenbank wählen? Was ist die "Schema" -Klasse, die Sie ohne Hinweis auf die Bibliothek eingeführt haben? Was ist mit Einzel- oder Mehrfachsammlung? Ich sehe nicht, wie diese Antwort hilft. –

Verwandte Themen