フラグの説明
例えば「死亡フラグが立った」という言葉があります。
あれは死亡フラグがオンになったということです。
多分あれはアドベンチャーゲーム、ノベルゲームから来た言葉だと思います。
例えばあるアドベンチャーゲームを想像してみましょう。
はじめ主人公の死亡フラグは0になっています。(死亡フラグ=0;)
主人公が戦争に行くことになる場面で次の選択肢が主人公に与えられます。
A.この戦いが終わったら結婚しよう
B.ばいばーい。またね!
この時システムの裏では
if(Aを選択){
死亡フラグ=1;
}
という処理がされます。
その後戦争中も次の選択肢が与えられます。
A.俺の命はもう長くない、そんな予感がするんだ。
B.意外と戦争っていっても大したことないな。
この時システムの裏では
if(Aを選択){
死亡フラグ=1;
}
という処理がされます。
でなんだかんだこういう選択肢があった後に
if(死亡フラグ==1){
主人公が死ぬイベントへ
}
else{
主人公が生存して帰ってくるイベントへ
}
という分岐がされて、それまでに死亡フラグを立てる(1にする)ような選択肢を一度でも選んでいたら主人公は死んでしまいます。
これが死亡フラグです。
このようにフラグは、"そのフラグが立っている(1になっている)か立っていない(0のまま)かによって処理を変える"という風に使います。(なぜフラグが"立つ"というかといえば、フラグは'旗'だからです。)
わかりやすいようでわかりにくい説明だったかもしれません。。。。
ともかくこの掲示板での処理の場合、
・削除フォームを押すとその投稿の削除フラグが立つ。
・削除フラグが立っていればその投稿を表示しない。
というような処理を行うことで、mysqlの中でデータを削除しなくても、データがなくなったかのように表示させることができます。
これが論理削除です。
mysqlでの実装としては
・defaultで0なdeleteflgをカラムとして用意
・削除フォームが押されたらdeleteflgを1に
・そのテーブルが参照されるときはdeleteflgが1のものを除外して参照する。(select * from table where deleteflg=0 みたいに)
とすれば良いと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/21 18:43