IoT+WEBのためのホームサーバ計画の実装編9。WebServer側のDB部分の検討。

DBのひとつくらいいれとくとあとあとラク

実は、不要なところにDBを使うのはあんまり好きじゃない。
json1コおいとけば済むところところまでDBにするとか、
画面ひとつにDB1レコード使うとか、、
そういうのは不要だと思うのでやりませんです。

と、言いつつ、DBがあれば便利な場合もあるし。

ということで、便利な場合もあるので、ひとつつけときましょう。
今回はユーザ管理があるので、仕方ない。。入れとくか。。。
って感じです。

DBは何使う?って、SQLite3でよくね?

ということで、まずDBはめんどいインストーラとかいらないSQLite3あたりにしときます。
サーバものはLinuxしますが、日頃はWindowsも多いので、
WindowsでそれらしいGUIのDBのToolのあるもの
を選択しましょう。
ってことで、、

PupSQLite

というのを使ってみました。

おーー!普通によくある普通のやつって感じです。
まぁこれを使う機会は最初のちょっとくらいではありますが、
なんとなく一覧が見えると安心するので、、
そして、MDBの如く、ファイルを指定するだけでOKなので、そこらへんが気がラクでよいです。

で、アクセスする方

アクセスするクライアントというか、サーバプログラム側ですが、
まぁこれも別にめんどくないです。

import sqlite3
from contextlib import closing
dbname = 'hiradb.db'
with closing(sqlite3.connect(dbname)) as conn:
	c = conn.cursor()
	sql = '''select * from finredWeb'''
	a = c.execute(sql)
	#b = a.fetchone()
	b = a.fetchall()
	n = len(b)
	ns = str(n)
	print("n:" + ns)
	for w in range(n):
		print(b[w])

結果は、、

ということで、何の苦労も無い感じですね(o^^o)

実際にDBで管理するもの

ということで、DB設計らしきものを。
必要なものはというと、、
●ユーザ管理
●HomeServerの管理
● HomeServerとユーザの関係
●その他
くらいですかねー。

【ユーザ管理で必要なもの】
ID、ユーザ名、パスワード(暗号化とかMD5とか)、最終アクセス日付、登録日、とか
【HomeServerの管理で必要なもの】
ID、GlocbalIP、LocalIP、固有ID、固有ID2、 クライアント(IoTコントローラ)情報、最終アクセス日付、登録日、とか
【HomeServerとユーザの関係で必要なもの】
ID、HomeServerID、ユ-ザID、可能機能ID、 最終アクセス日付、登録日、とか

まぁなんとなくこんな感じで。
作りながらやってきましょう。

ホームサーバで何かDB管理しないのかというと、

しません。(o^^o)

正確に言えば、必要性が出てきたらする、、ですかね。^^;

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です