FC2ブログ

削除フラグ

データベースのテーブル設計をしていると、最近頓に目に付くのが削除フラグ
自称データベースに詳しい人間は事象を把握するのにデータベースを開く。
開発とかプログラミングを知らないのにSQLを多少それっぽく操作できるというだけでデータベースを開く。SELECT * で。
一つのテーブルで全てが目視できることを望む彼らは結合を嫌う。
そういう彼らを重宝する向きもあったのであろう現場では、障害の原因を彼らに尋ねるようになるが、データの状況だけで何がわかるはずもない。そこで彼らは履歴を求めるようになった。だがしかし彼らの武器はSELECT *のみ。
そこで編み出されたのが削除フラグ。DELETEの代わりに削除するときにONにするフィールドだ。

悲しいことに彼らは制約という概念を理解していないので、どのテーブルでもauto-incrementのフィールドのみのインデクスだし、複数フィールドでのUNIQUEな制約など全く念頭にない。まぁつまりお構いなしなわけで。
削除フラグをON/OFFにしているために、そのテーブルには一切のUNIQUE制約をつけることができなくなるが彼らには関係のない話なのだろう。

テーブル設計に削除フラグが存在している時点でその開発能力に疑問符がつきお里が知れる状況であることを理解していない。品質云々以前のお話。

まずデータベースの更新履歴が本当に必要な業務であるなら、データベースレベルでのトランザクションログをしっかり取るべきで、それ以上もそれ以下もない。やれという話なわけで。
業務系システムならば通常は更新する側のアプリケーションでしっかりログ記録しておけば済む話である。SELECT *で履歴を知ろうなどと考えるのがおかしい。
百歩譲って削除フラグを設けるとすれば、都度UNIQUEな値をセットする事にする(例えばNULLが有効、削除時には都度UUID的なユニークな値をセットする)とかにしないと、そもそもデータベースとして役に立たない。
まぁどちらにしても無駄としかいいようがないのだが。内容をチェックしたいのならチェックするツールを作れよ。SELECT *で全てがわかるって本当に思っているわけじゃあるまいに。

自称データベースに詳しい人は、業務アプリケーションの仕様を紐解かずにある程度の動作を理解できるようなテーブル設計に労力を割いて欲しい。制約がきちんと設定してあればそれだけで無駄な調査が減る。ありえないデータはそもそも登録できないのだから。NOT NULLなりDEFAULTなりUNIQUEなりでアプリケーション側の負担も相当減るし運用後の調査やリグレッションテスト項目だって激減するのだから。

これからIT系の世に出ようとする方々には是非とも
削除フラグ?馬鹿なのか?
と声に出してもらいたい。
スポンサーサイト



Rustってやつ

とうとうRustに手を出さざるを得なく、というほどでもないのだが、知識として持っておかないといけない気がして。

Rust(プログラミング言語) - Wikipedia

本家本元はというと
Rust Programming Languageの模様。

さてこれで何をするかというと、何もする予定がないのだけれど、JavaやC#でさえInterfaceを理解していない輩が溢れる業務系の開発現場ではたしてRustのtraitは受け入れられるものなのだろうかという疑問を解決したい。
おりしもDevelopers Festa Sapporo 2020(2020/11/18)ではRustのいい話が聴けるとか聴けないとか。

Pythonにはまるで興味が湧かなかったんだが、果たしてRustはっ

寄る年波には勝てず

なんとも情けないことに肺気腫らしい。

そりゃ15、6歳から40年以上喫煙続けてりゃしゃぁないわなぁ、と納得。
こりゃしばらくサッカーもできんぞなもし。

だがしかし煙草がやめられんのです。
仕事中は頭の整理にニコチンは必須となっており、家庭でも居場所があやういので吸わずにもいられなく。
親父も肝臓フォアグラ状態で酒飲んでたし、まぁなんとかなるべーと思ったり。

さてeeePCですが

SDカードがお亡くなりになったので、4GB-SSDだけでなんとか頑張るマン。

てことで、Net*BSD9+AfterStep。
20200426075130541.jpeg

まだ日本語対応してないので、フォント入れたりなんだりしないと。
そのままでgcc7が入ってるので使えそう。
とにかく軽すぎて癖になる。

SDカードお亡くなり

永らくeeePC-4Gのストレージとして使っていた
Transcend SDHCカード 16GB Class10 TS16GSDHC10
Transcend SDHCカード 16GB Class10 TS16GSDHC10
本日突然お亡くなりに。
20200418_3.jpg
起動するも、superblockを書けないとのエラー。
Windows機に挿してみるも、書き込みできない状態となっていた。
SDカードは寿命がくると前触れなくReadOnlyになるようだ。
5年保証のSDカードだが、たぶん6~7年経ってるような。
なので現在使用していたeeePC-4Gでのlubuntuは引き上げ。内臓の4GB-SSDだけで頑張れないか画策。


プロフィール

f_yamaki

Author:f_yamaki

アクセスカウンタ
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク