Benutzer-Werkzeuge

Webseiten-Werkzeuge


development:schema

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
development:schema [2010/09/17 21:56]
steffenvogel
development:schema [2015/02/18 16:30] (aktuell)
andig [Typen] Auswertung präzisiert
Zeile 1: Zeile 1:
 ====== Datenstruktur ====== ====== Datenstruktur ======
  
-Auf dieser Seite beschreibe ich die Datenstruktur unseres Backend'und der damit verbundenen Datenbank.+Auf dieser Seite beschreibe ich die Datenstruktur unserer Middleware und der damit verbundenen Datenbank.
  
 ===== Objekte ("entities") ===== ===== Objekte ("entities") =====
Zeile 26: Zeile 26:
   * sie kann gruppierte Kanäle gemeinsam auswerten   * sie kann gruppierte Kanäle gemeinsam auswerten
     * Visualisierung     * Visualisierung
-    * Summe 
-    * statistisch (Durchschnitt, Min, Max etc.) 
   * ein Kanal kann in mehreren Gruppen enthalten sein   * ein Kanal kann in mehreren Gruppen enthalten sein
   * eine Gruppe kann selbst in mehreren Gruppen enthalten sein (Rekursion)   * eine Gruppe kann selbst in mehreren Gruppen enthalten sein (Rekursion)
Zeile 33: Zeile 31:
 ==== Eigenschaften ("properties") ==== ==== Eigenschaften ("properties") ====
  
-[[http://github.com/volkszaehler/volkszaehler.org/blob/master/share/definitions/properties.json]]+[[https://github.com/volkszaehler/volkszaehler.org/blob/master/lib/Volkszaehler/Definition/PropertyDefinition.json]]
  
 ==== Referenzierung ==== ==== Referenzierung ====
  
 === global (weltweit) === === global (weltweit) ===
-Ein wichtiger Bestandteil unserer API ist die weltweit eindeutige Referenzierung von allen Entities durch eine [http://de.wikipedia.org/wiki/Universally_Unique_Identifier UUID] gemäß [http://tools.ietf.org/html/rfc4122 RFC4122].+Ein wichtiger Bestandteil unserer API ist die weltweit eindeutige Referenzierung aller Entities durch eine [[http://de.wikipedia.org/wiki/Universally_Unique_Identifier|UUID]] gemäß [[http://tools.ietf.org/html/rfc4122|RFC4122]].
  
-Die UUID's werden immer durch das Backend  zufällig generiert um die Kollisionsgefahr zu minimieren.+Die UUID's werden immer durch die Middleware zufällig generiert um die Kollisionsgefahr zu minimieren.
  
 Das ganze hat Vorteile: Das ganze hat Vorteile:
   * einmal installiert behält ein Zähler immer seine UUID   * einmal installiert behält ein Zähler immer seine UUID
-  * das Mergen von Backends mit ihren Messwerten wäre möglich+  * das Mergen von Middlewares mit ihren Messwerten wäre möglich
   * bieten durch ihre Komplexität einen gewissen Zugriffsschutz   * bieten durch ihre Komplexität einen gewissen Zugriffsschutz
  
Zeile 51: Zeile 49:
   * schwer zu merken   * schwer zu merken
  
-=== lokal (auf dem Backend) === +=== lokal (auf der Middleware) === 
-Um Speicherplatz zu sparen nutzt das Backend intern nur 2byte lange IDs. Diese werden mit Foreign Keys in der Datenbank untereinander verknüpft. Das sorgt dafür das wir zusätzlich zur Absicherung im Backend keine inkonsistenten Daten bekommen können.+Um Speicherplatz zu sparen nutzt die Middleware intern nur 2byte lange IDs. Diese werden mit Foreign Keys in der Datenbank untereinander verknüpft. Das sorgt dafür das wir zusätzlich zur Absicherung in der Middleware keine inkonsistenten Daten bekommen können. 
 + 
 +=== mysql Database === 
 +The mysql database structure can be analyzed with the mysql command line client. 
 +The following results are as of 2014-05-22: 
 + 
 +<code sql> 
 +show tables; 
 +</code> 
 + 
 +Tables_in_volkszaehler 
 +  * aggregate 
 +  * data 
 +  * entities 
 +  * entities_in_aggregator 
 +  * properties 
 + 
 +<code sql> 
 +describe entities; 
 +</code> 
 + 
 +^ Field ^ Type         ^ Null ^ Key ^ Default ^ Extra          ^ 
 +| id    | int(11)      | NO   | PRI | NULL    | auto_increment | 
 +| uuid  | varchar(36)  | NO   | UNI | NULL    |                | 
 +| type  | varchar(255) | NO       | NULL    |                | 
 +| class | varchar(255) | NO       | NULL    |                | 
 + 
 +<code sql> 
 +describe properties; 
 +</code> 
 + 
 +^ Field ^ Type         ^ Null ^ Key ^ Default ^ Extra          ^ 
 +| id        | int(11)      | NO   | PRI | NULL    | auto_increment | 
 +| entity_id | int(11)      | YES  | MUL | NULL    |                | 
 +| pkey      | varchar(255) | NO       | NULL    |                | 
 +| value     | longtext     | NO       | NULL    |                | 
 + 
 +<code sql> 
 +describe data; 
 +</code> 
 +^ Field ^ Type         ^ Null ^ Key ^ Default ^ Extra          ^ 
 +| id         | int(11)    | NO   | PRI | NULL    | auto_increment | 
 +| channel_id | int(11)    | YES  | MUL | NULL    |                | 
 +| timestamp  | bigint(20) | NO       | NULL    |                | 
 +| value      | double     | NO       | NULL    |                | 
 + 
 +<code sql> 
 +describe aggregate; 
 +</code> 
 + 
 +^ Field ^ Type         ^ Null ^ Key ^ Default ^ Extra          ^ 
 +| id         | int(11)     | NO   | PRI | NULL    | auto_increment | 
 +| channel_id | int(11)     | YES  | MUL | NULL    |                | 
 +| type       | smallint(6) | NO       | NULL    |                | 
 +| timestamp  | bigint(20)  | NO       | NULL    |                | 
 +| value      | double      | NO       | NULL    |                | 
 +| count      | int(11)     | NO       | NULL    |                | 
 + 
 +<code sql> 
 +describe entities_in_aggregator; 
 +</code> 
 + 
 +^ Field ^ Type         ^ Null ^ Key ^ Default ^ Extra          ^ 
 +| parent_id | int(11) | NO   | PRI | NULL    |       | 
 +| child_id  | int(11) | NO   | PRI | NULL    |       |
  
 ===== Messwerte ("data") ===== ===== Messwerte ("data") =====
development/schema.1284753412.txt.gz · Zuletzt geändert: 2011/05/29 13:09 (Externe Bearbeitung)