2ch風掲示板
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Webプログラミング]]
2ch風のスレッド式掲示板を使いたい。
YouTubeのように、サムズアップダウンボタンを付けたい。
#contents
* 2chの仕様 [#x558a51b]
データベース設計のため、2chの仕様、データ構造を検討する。
データの階層は、大きく分けると4階層になっている。
** 参考 [#zacb3d4c]
- 2ch専用ブラウザの開発まとめサイト
http://www.monazilla.org/
2ch関連の情報がまとまっている。
- 2ちゃんねるについて - monazilla.org
http://www.monazilla.org/index.php?c=6-20
>2ちゃんねるの仕様とやりとり方法(HTTP等)のまとめ。
- 2ちゃんねる開発資料 - monazilla.org
http://www.monazilla.org/index.php?e=192
>メニューの取得
スレッドタイトル一覧の取得
スレッドの取得
- と~く2ちゃんねる
http://age.s22.xrea.com/talk2ch/
>2ちゃんねるとお話するための方法をまとめたメモです。
** データの構造 [#v0776c04]
(参考)2chの掲示板一覧
http://menu.2ch.net/bbstable.html
2chのデータは階層構造になっており、トップページからたどる...
+ カテゴリー
+ 板
+ スレッド
+ レス
という4階層になっている。
|階層|内容|h
|カテゴリー|2chの掲示板は、「カテゴリー」と呼ばれる大きな...
|板|カテゴリーは、さらに「板」(いた、ばん)という細かい...
|スレッド|一つの板の中に、いろいろなたくさんの掲示板が設...
|レス|2ちゃんねるでは書き込みのことを「レス」という。「...
* データベース設計 [#e3bcdb8a]
MySQLで
+ カテゴリー
+ 板
+ スレッド
+ レス
を格納するテーブルを用意する。
** カテゴリー [#n5dbbb85]
テーブル名:bbs_category
|カラム名|データ型|内容|h
|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 ;
}}
** 板 [#w80dc913]
テーブル名:bbs_board
|カラム名|データ型|内容|h
|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 ;
}}
** スレッド [#o5d63e1e]
テーブル名:bbs_thread
|カラム名|データ型|内容|h
|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|削除日時=論理削除|
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_thread` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`board_id` int(11) NOT NULL,
`thread` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`ip` varchar(64) NOT NULL,
`sum_up` int(11) NOT NULL,
`sum_down` 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`)
) ENGINE=InnoDB ;
}}
** レス [#ub444e0b]
テーブル名:bbs_response
|カラム名|データ型|内容|h
|id|int|主キーのID。auto_incrementの連番でOK|
|thread_id|int|親のスレッドID|
|name|varchar(255)|投稿者の名前|
|email|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|削除日時=論理削除|
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_response` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`thread_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`response` text NOT NULL,
`password` varchar(255) NOT NULL,
`ip` varchar(64) NOT NULL,
`sum_up` int(11) NOT NULL,
`sum_down` 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`)
) ENGINE=InnoDB ;
}}
終了行:
[[Webプログラミング]]
2ch風のスレッド式掲示板を使いたい。
YouTubeのように、サムズアップダウンボタンを付けたい。
#contents
* 2chの仕様 [#x558a51b]
データベース設計のため、2chの仕様、データ構造を検討する。
データの階層は、大きく分けると4階層になっている。
** 参考 [#zacb3d4c]
- 2ch専用ブラウザの開発まとめサイト
http://www.monazilla.org/
2ch関連の情報がまとまっている。
- 2ちゃんねるについて - monazilla.org
http://www.monazilla.org/index.php?c=6-20
>2ちゃんねるの仕様とやりとり方法(HTTP等)のまとめ。
- 2ちゃんねる開発資料 - monazilla.org
http://www.monazilla.org/index.php?e=192
>メニューの取得
スレッドタイトル一覧の取得
スレッドの取得
- と~く2ちゃんねる
http://age.s22.xrea.com/talk2ch/
>2ちゃんねるとお話するための方法をまとめたメモです。
** データの構造 [#v0776c04]
(参考)2chの掲示板一覧
http://menu.2ch.net/bbstable.html
2chのデータは階層構造になっており、トップページからたどる...
+ カテゴリー
+ 板
+ スレッド
+ レス
という4階層になっている。
|階層|内容|h
|カテゴリー|2chの掲示板は、「カテゴリー」と呼ばれる大きな...
|板|カテゴリーは、さらに「板」(いた、ばん)という細かい...
|スレッド|一つの板の中に、いろいろなたくさんの掲示板が設...
|レス|2ちゃんねるでは書き込みのことを「レス」という。「...
* データベース設計 [#e3bcdb8a]
MySQLで
+ カテゴリー
+ 板
+ スレッド
+ レス
を格納するテーブルを用意する。
** カテゴリー [#n5dbbb85]
テーブル名:bbs_category
|カラム名|データ型|内容|h
|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 ;
}}
** 板 [#w80dc913]
テーブル名:bbs_board
|カラム名|データ型|内容|h
|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 ;
}}
** スレッド [#o5d63e1e]
テーブル名:bbs_thread
|カラム名|データ型|内容|h
|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|削除日時=論理削除|
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_thread` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`board_id` int(11) NOT NULL,
`thread` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`ip` varchar(64) NOT NULL,
`sum_up` int(11) NOT NULL,
`sum_down` 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`)
) ENGINE=InnoDB ;
}}
** レス [#ub444e0b]
テーブル名:bbs_response
|カラム名|データ型|内容|h
|id|int|主キーのID。auto_incrementの連番でOK|
|thread_id|int|親のスレッドID|
|name|varchar(255)|投稿者の名前|
|email|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|削除日時=論理削除|
#code(sql){{
CREATE TABLE IF NOT EXISTS `bbs_response` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`thread_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`response` text NOT NULL,
`password` varchar(255) NOT NULL,
`ip` varchar(64) NOT NULL,
`sum_up` int(11) NOT NULL,
`sum_down` 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`)
) ENGINE=InnoDB ;
}}
ページ名: