プロが教える店舗&オフィスのセキュリティ対策術

プログラム初心者です

phpとmysqlで簡単な掲示板を作りました

一つのテーブルでsure_idごとにスレッドをつくり、resu_idでレス番号をつくっています

そこで削除フラグがある場合にはそのレスを表示しないようにしたいのです

素人なのでこんな方法しか思い浮かばないのですがこれで大丈夫でしょうか?
5番のスレッドを全て取得し、削除フラグがない行を全て取得
SELECT * FROM bbs WHERE sure_id=5 and dll_flg=0

質問1
削除フラグはどのような立て方が良いでしょうか?0と1でしょうか?

質問2
削除フラグのカラムにもインデックスを張ったほうが速いですか?

質問3
phpでいちいちif文で判定するよりsqlで表示判定したほうが早いですよね?

よろしくお願いします

A 回答 (1件)

質問1:


 BOOLEAN型(TRUE/FLASE型)があるDBの場合はこれを
 使ったほうが良いですが、mysql には無いので数値で代替
 するしかありません。
 0 の意味を忘れないように (0 は削除・未削除のどっちだっ
 け?とならないように) 注意してください。

質問2:
 検索は速くなりません。しかも登録 (INSERT/UPDATE) が
 遅くなるので付けないほうがマシです。
 
 何故 検索が速くならないのか、何故 登録が遅くなるのかに
 ついては、きちんとインデックスの仕組みを学習してください。
 良いシステムを作るには、きちんと仕組みを知ることが必須
 です。

質問3:
 たいていの場合は SQL のほうが速いでしょう。
 DB関連の処理は『なるべくまとめて処理する』『不要なデータ
 は取得しない』ことが処理速度アップの基本です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
インデックスつけるとUPDATE遅くなるのですね。勉強不足でした
sqlのほうで処理することにしました。ありがとうございました

お礼日時:2014/02/09 22:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!