🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195516

Re: struktura bazy do zbierania danych z czujników

#195516
From: irq
Date: Thu, 08 Feb 2018 16:36
13 lines
3278 bytes
Przepraszam Cię za zaśmiecenie wątku poboczną dyskusją z poboczną osobą. Nie mogłem się opanować, ale osobie chyba właśnie o to chodzi.

W dniu poniedziałek, 5 lutego 2018 23:52:45 UTC+1 użytkownik baItiz napisał:
> Będę zbierał dane z czujników typu temperatura wewnętrzna i zewnętrzna, 
> wilgotność względna, ciśnienie powietrza. Lista nie jest zamknięta i 
> mogą dojść kolejne np. strumień świetlny, stężenie pyłów w powietrzu.
> 

Dlatego proponuję Ci abyś wyraźniej rozdzielił zadanie składowania zdarzeń od zadań raportowania. Do składowania przygotuj sobie jak najprostszą, być może partycjonowaną, tabelę pomiarów, zawierającą pary klucz-wartość, typu text - model EAV?. Będzie odporna na ewentualne przyszłe zmiany i na błędy, które wyczyścisz (i zdiagnozujesz) osobno. Nie zawracaj sobie tutaj głowy rozważaniami na temat typów danych, kluczowe jest aby tabela pomiarów zawierała po prostu to co dostaje z czujnika.

Mając tabelę pomiarów, a więc zabezpieczone stabilne składowanie danych pierwotnych (i ich backupowanie), możesz dowolnie projektować i modyfikować struktury przeznaczone do sprawnego raportowania, do których będziesz przepisywał odpowiednio zinterpretowane (i zagregowane?) wartości surowe. Tu będziesz mógł eksperymentować i doskonalić, nie ryzykując utraty stabilności rejestracji pomiarów.

Odnośnie identyfikacji miejsca pomiaru, ogranicz się w tabeli pomiarów do samego identyfikatora czujnika. Aby "zgeolokalizować" taki czujnik, zaprojektuj oddzielną tabelę czujników, w której będziesz prowadził ich ewidencję, a m.in. będziesz przechowywał ich lokalizacje oraz daty instalacji - wszak czujniki mogą się psuć, czy z innych powodów być wymieniane. Geolokalizację pomiaru uzyskasz przez odpowiednie złączenie (z tabelą pomiarów, bądź z tabelami raportującymi).
Technical Details
Message-ID: <d33f511a-0c12-4805-abd0-06577cabc391@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no803686ita.0!news-out.google.com!k194ni2781itb.0!nntp.google.com!w142no802964ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <p5an7s$eou$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.107.155.75 with SMTP id d72mr905081ioe.31.1518107770388;        Thu, 08 Feb 2018 08:36:10 -0800 (PST)
X-Received: by 10.157.14.146 with SMTP id 18mr59925otj.10.1518107770138; Thu, 08 Feb 2018 08:36:10 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no803686ita.0!news-out.google.com!k194ni2781itb.0!nntp.google.com!w142no802964ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.bazy-danych
Date: Thu, 8 Feb 2018 08:36:09 -0800 (PST)
In-Reply-To: <p5an7s$eou$1@node2.news.atman.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.11.36.98; posting-account=HsGcpQoAAABR8eqXdcgZHaZMq6uPUZY5
NNTP-Posting-Host: 78.11.36.98
References: <p5an7s$eou$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d33f511a-0c12-4805-abd0-06577cabc391@googlegroups.com>
Subject: Re: struktura bazy do zbierania danych z czujników
From: irq <ipluta62@gmail.com>
Injection-Date: Thu, 08 Feb 2018 16:36:10 +0000
X-Received-Body-CRC: 2733562991
X-Received-Bytes: 3709
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit