2ch風のスレッド式掲示板を使いたい。
YouTubeのように、サムズアップダウンボタンを付けたい。
2chの仕様 †
データベース設計のため、2chの仕様、データ構造を検討する。
データの階層は、大きく分けると4階層になっている。
参考 †
- 2ch専用ブラウザの開発まとめサイト
http://www.monazilla.org/
2ch関連の情報がまとまっている。
- 2ちゃんねるについて - monazilla.org
http://www.monazilla.org/index.php?c=6-202ちゃんねるの仕様とやりとり方法(HTTP等)のまとめ。
- 2ちゃんねる開発資料 - monazilla.org
http://www.monazilla.org/index.php?e=192メニューの取得
スレッドタイトル一覧の取得
スレッドの取得
- と~く2ちゃんねる
http://age.s22.xrea.com/talk2ch/2ちゃんねるとお話するための方法をまとめたメモです。
データの構造 †
(参考)2chの掲示板一覧
http://menu.2ch.net/bbstable.html
2chのデータは階層構造になっており、トップページからたどると、
- カテゴリー
- 板
- スレッド
- レス
という4階層になっている。
階層 | 内容 |
カテゴリー | 2chの掲示板は、「カテゴリー」と呼ばれる大きな分野単位(ニュース、食文化、ネット関係など)で区切られている。 |
板 | カテゴリーは、さらに「板」(いた、ばん)という細かいジャンルで分けられている。 |
スレッド | 一つの板の中に、いろいろなたくさんの掲示板が設けられている。2ちゃんねるでは掲示板のことを「スレッド」という。「スレッド」を略して「スレ」という。 |
レス | 2ちゃんねるでは書き込みのことを「レス」という。「レス」は、レスポンス(response)、すなわち返信を意味する。 |
データベース設計 †
MySQLで
- カテゴリー
- 板
- スレッド
- レス
を格納するテーブルを用意する。
カテゴリー †
テーブル名:bbs_category
カラム名 | データ型 | 内容 |
id | int | 主キーのID。auto_incrementの連番でOK |
category | varchar(255) | カテゴリー名。重複なし |
sort | int | 並び順を指定する数値 |
create_dt | datetime | 作成日時 |
update_dt | datetime | 更新日時 |
delete_dt | datetime | 削除日時=論理削除 |
1
2
3
4
5
6
7
8
9
10
11
| - | | | | | | | | | ! |
|
板 †
テーブル名:bbs_board
カラム名 | データ型 | 内容 |
id | int | 主キーのID。auto_incrementの連番でOK |
category_id | int | 親のカテゴリーID |
board | varchar(255) | 板名。重複なし |
sort | int | 並び順を指定する数値 |
create_dt | datetime | 作成日時 |
update_dt | datetime | 更新日時 |
delete_dt | datetime | 削除日時=論理削除 |
1
2
3
4
5
6
7
8
9
10
11
12
| - | | | | | | | | | | ! |
|
スレッド †
テーブル名:bbs_thread
カラム名 | データ型 | 内容 |
id | int | 主キーのID。auto_incrementの連番でOK |
board_id | int | 親の板ID |
thread | varchar(255) | スレタイ(スレッドのタイトル) |
password | varchar(255) | 編集用パスワード。スレッド作成者が後で編集できる仕様にする |
ip | varchar(64) | スレッド作成者のIPアドレス。IPv6(40文字)にも対応 |
sum_up | int | サムズアップボタンのクリック数。=スレッドに対する良い評価の投票 |
sum_down | int | サムズダウンボタンのクリック数。=スレッドに対する悪い評価の投票 |
create_dt | datetime | 作成日時 |
update_dt | datetime | 更新日時 |
delete_dt | datetime | 削除日時=論理削除 |
1
2
3
4
5
6
7
8
9
10
11
12
13
| - | | | | | | | | | | | ! |
|
レス †
テーブル名:bbs_response
カラム名 | データ型 | 内容 |
id | int | 主キーのID。auto_incrementの連番でOK |
thread_id | int | 親のスレッドID |
name | varchar(255) | 投稿者の名前 |
varchar(255) | 投稿者のメールアドレス | |
response | text | レス=投稿内容 |
password | varchar(255) | 編集用パスワード。投稿者が後で編集できる仕様にする |
ip | varchar(64) | 投稿者のIPアドレス。IPv6(40文字)にも対応 |
sum_up | int | サムズアップボタンのクリック数。=レスに対する良い評価の投票 |
sum_down | int | サムズダウンボタンのクリック数。=レスに対する悪い評価の投票 |
create_dt | datetime | 作成日時 |
update_dt | datetime | 更新日時 |
delete_dt | datetime | 削除日時=論理削除 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| - | | | | | | | | | | | | | ! |
|