Ten rozdział opisuje strukturę bazy MySQL. Przedstawiono w nim schemat poszczególnych tabel. Opis każdej tabeli składa się z siedmiu kolumn. Znaczenie poszczególnych kolumn to:
Nazwa pola
Typ przechowywanych danych
Wartość logiczna określająca, czy dane pole w tabeli może przechowywać wartość niezdefiniowaną (null).
Typ klucza. Może przyjmować jedną z wartości:
PRI - oznacza, że kolumna to klucz podstawowy
MUL - ???
UNI - oznacza, że wartość przechowywana w tym polu jest unikalna dla całej tabeli
Wartość domyślna jaką przyjmie baza danych w przypadku kiedy nie zostanie podana żadna wartość. Znak myślnika oznacza, że pole nie ma zdefiniowanej domyślnej wartości.
Określa dodatkowe właściwości pola. Może przyjmować jedną z wartości:
auto_increment - oznacza, że kolejno dodawane rekordy będą automatycznie inkrementowane
Dodatkowe informacje dotyczące danego pola
Schemat bazy danych nie zawiera pól typu DATETIME
. Daty są przechowywane w formacie timestamp[1] w polu o typie INT
.
Tabela 5.1. Spis tabel
Nazwa | Opis |
---|---|
interfaces | Zawiera dane interfejsów (wejść i wyjść) |
logs | Zawiera logi systemowe |
settings | Zawiera podstawowe ustawienia systemowe. |
stats | Zawiera statystyki (dane odczytane z czujników) |
timers | Zawiera spis timerów (zdarzeń) |
units | Zawiera jednostki miar (używane tylko w UI) |
alarms | Zawiera spis alarmów |
water | Zawiera pomiary wody robione poza AaquaPi (np. testami kropelkowymi - używane tylko w UI) |
Tabela 5.2. Tabela interfaces
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
interface_id | int(5) | NO | PRI | NULL | auto_increment | Identyfikator |
interface_address | varchar(200) | YES | NULL | Adres interfejsu. Dla wejść może zaczynać się od:
| ||
interface_name | varchar(30) | NO | NULL | Nazwa interfejsu. Przykładowe nazwy to "oświetlenie główne", "grzałka", etc. | ||
interface_type | tinyint(4) | NO | 1 | Typ interfejsu. Dopuszczalne wartości to:
| ||
interface_icon | varchar(20) | YES | NULL | Ikonka przypisana do urządzenia | ||
interface_conf | float | YES | NULL | Negowanie sygnału wyjściowego. Możliwe ustawienia
| ||
interface_deleted | tinyint(4) | NO | 0 | czy interfejs jest skasowany | ||
interface_htmlcolor | varchar(6) | YES | 0 | Kod HTML koloru który będzie używany na wykresie | ||
interface_uom | int(5) | YES | NULL | Id jednostki miary przypisanej do urządzenia |
Tabela 5.3. Tabela logs
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
log_id | int(5) | NO | PRI | NULL | auto_increment | Identyfikator |
log_date | int(5) | NO | NULL | Znacznik czasu | ||
log_level | int(5) | NO | NULL | Typ loga. Możliwe wartości to:
| ||
log_value | char(200) | NO | NULL | Zawartość loga |
Tabela 5.4. Tabela settings
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
setting_id | int(5) | NO | PRI | NULL | auto_increment | Identyfikator |
setting_key | char(30) | NO | NULL | Nazwa klucza ustawień | ||
setting_value | char(60) | NO | NULL | Wartość klucza ustawień |
Tabela 5.5. Tabela stats
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
stat_id | int(11) | NO | PRI | NULL | auto_increment | Identyfikator |
stat_date | int(11) | YES | NULL | Znacznik czasu | ||
stat_interfaceid | int(5) | NO | MUL | NULL | Identyfikator interfejsu którego dotyczy zachowana wartość | |
stat_value | float | NO | NULL | Wartość odczytana z interfejsu |
Tabela 5.6. Tabela timers
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
timer_id | int(5) | NO | PRI | NULL | auto_increment | Identyfikator |
timer_timeif | int(5) | YES | NULL | Uproszczony znacznik czasu informujący kiedy timer ma być aktywny. W odróżnieniu od zwykłego znacznika, ten zawiera liczbę sekund która upłyneła od północy. | ||
timer_action | tinyint(4) | NO | NULL | Nowa wartość dla interfejsu przełączanego. 0 - wyłacz, 1-włacz | ||
timer_interfaceidthen | int(5) | NO | MUL | NULL | Identyfikator interfejsu który ma być przyłączony jeśli warunki zdarzenia są spełnione | |
timer_days | varchar(7) | NO | NULL | Dni tygodnia w kórych timer powinien być sprawdzany. Dni są zapisane jako ciąg zer i jedynek. Od lewej strony zaczynając dni to: niedziela, poniedziałek, wtorek, środa, czwartek, piątek, sobota. |
Tabela 5.7. Tabela units
Pole | Typ | Null | Klucz | Domyślnie | Ekstra | Opis |
---|---|---|---|---|---|---|
unit_id | int(11) | NO | PRI | NULL | auto_increment | Identyfikator |
unit_name | varchar(32) | NO | NULL | Jednostka miary |
[1] Przechowywanie daty w formacie timestamp polega na zapisaniu liczby sekund od daty 1/01/1970, czyli od momentu początku epoki unixa.