2ch風のスレッド式掲示板を使いたい。
YouTubeのように、サムズアップダウンボタンを付けたい。
データベース設計のため、2chの仕様、データ構造を検討する。
データの階層は、大きく分けると4階層になっている。
2ちゃんねるの仕様とやりとり方法(HTTP等)のまとめ。
メニューの取得
スレッドタイトル一覧の取得
スレッドの取得
2ちゃんねるとお話するための方法をまとめたメモです。
(参考)2chの掲示板一覧
http://menu.2ch.net/bbstable.html
2chのデータは階層構造になっており、トップページからたどると、
階層 | 内容 |
カテゴリー | 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 | 削除日時=論理削除 |
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_category` (
`id` int(11) NOT NULL AUTO_INCREMENT, `category` varchar(255) NOT NULL, `sort` int(11) NOT NULL, `create_dt` datetime NOT NULL, `update_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `delete_dt` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `category` (`category`), KEY `sort` (`sort`)
) ENGINE=InnoDB ;
}}
テーブル名: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 | 削除日時=論理削除 |
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_board` (
`id` int(11) NOT NULL AUTO_INCREMENT, `category_id` int(11) NOT NULL, `board` varchar(255) NOT NULL, `sort` int(11) NOT NULL, `create_dt` datetime NOT NULL, `update_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `delete_dt` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `board` (`board`), KEY `sort` (`sort`)
) ENGINE=InnoDB ;
}}
テーブル名: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 | 削除日時=論理削除 |
テーブル名: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 | 削除日時=論理削除 |