2015.8.21
0からはじめるPHP#41【アジャイルで作る掲示板#2-方針設計-】
というわけで、今回から本格的に
掲示板の作成を初めていきたいかと思います。
といっても、技術的に必要な話は既にあらかたやっていると思うので、具体的な実装に関してはデータベースの時ほど触れないと思います。
セキュリティホールが発生するので。
というわけで、お絵かきしてみました。これが今回の設計です。個人で作るもんはこんなもんで充分かなと思います。
データベースは大まかにしか設計していません。今回はなるべく後回しにしてみようかなと思います。アジャイルって
たぶんそういう意味じゃないとは思うんですけど今回の目標は
デザインとロジックの分離を念頭にやっていきたいと思っていますので、デザインはそれ単体で書くことができるように工夫していきたいなと思っています。データベースの影響を受けるようではまずい、ということですね。
ちなみに、上の落書きの説明を簡単にしますと、まずデータベースは
テーブル2つで実装します。スレッドを管理する
bbs_parentテーブルと、記事データを取り扱う
bbs_contentテーブルです。
まぁ実際この2つを分ける必要ってないといいますか、分けなくてもいいかなとも思ったんですが、見やすさも兼ねて作ってみました。まぁ、スレッド固有の情報とかあった方がいいかも知れませんしね。例えばレス数とか・・・・・・。いちいち数えてもいいと思うんですけどね。まぁ、将来性も兼ねてということで。
記事データの方は、投稿された内容を取扱ます。
スレッドのidを参照することでレスかどうかを判定します。nullなら親記事、ということです。
並び替えは投稿日時でソートすれば良いと思います。
今回は
現行の掲示板と同じ形式のものを作ろうと思いますので、方針としてはこんな感じでいいと思います。記事の読み込みはソートしてからのループ処理で大丈夫かなと思います。
1つの記事に2つ以上のレスがつく可能性のあるツリー形式で設計する場合は、再帰呼び出しを用いて実装することになると思います。
デザインの方は左側の方にまとめて書いてありますが、必要な画面遷移は意外と少ないです。たった3画面です。そのうち2画面は流用可能な構造にしたいです。
また、今回の掲示板では
編集・削除機能は実装しません。掲示板の書き込みが途中で変わったら嫌だからです。
データベースの編集・削除に関しては前シリーズで充分に学習できましたし、必要でないのに挑戦する必要もないでしょう。
ただ、管理画面からはできるようにしようかなぁーとは思ったりしています。つまり
削除される可能性を念頭に置く必要はあるということです。まぁたぶん単純にソートするだけなので問題は置きないと思うのですが・・・・・・。
管理画面のGUIは一応作ろうとは思っています。ただ、リンクは張らずにURLに直接
/adminと入力することで管理画面にアクセスできるようにしようかと思います。
そこで、パスワードを入力してログイン、といった感じです。
あと、セキュリティ対策という側面も兼ねて
MySQLのユーザー設定なんかも今回取り上げたいなと思ってます。
大体の流れを把握したところで、テンプレートをガリガリ書いてある程度形が見えたら次回更新しようかなと思います。
以下コメント返信。
名前掲載可否が無用の長物になっていたので、今回から名前を表示させられるようにしてみました。
配色はちょっと考えものですけど
今は見やすさ度外視で改行させないようにしてるんですけど
(改行は私が手動で入れてます)、そのうち改行に対応したデザインを考えたいなーと思ってるんですけど、とりあえず暫定で名前の表示だけ追加ということで・・・・・・。
ただ、現行デザインだと、変に改行が入ると
異様にダサく見えて嫌なんですよね。
掲示板のレスちっくにしようかなぁーとか考えてみたり。まぁそのうち考えよう。
この話何回も言ってるけど。
インデント入れたら急にダサくなったのでhr入れてごまかしてます。これは全く気に入ってません。(笑)
デザイン考えるモチベが上がらない原因は、コメントなんて滅多にこないからってのもあるんですけどねwwwwwwwwwwwwwwwwww
おー、どれも面白そうですね!ヘックスなんかは単純で受けが良さそう・・・・・・!(笑)
今度やってみようかと思います!ありがとうございます!