phpMyFAQ のデータベースを調査

オープンソースの FAQ システムである phpMyFAQ のデータベースを調査しました。phpMyFAQ は様々な RDBMS を使えますが,今回は SQLite3 のデータベースを対象にします(MySQL,PstgreSQL,Microsoft SQL Server,MariaDB 等が使用できます)。

phpMyFAQ のテーブルは 42 個ありますが,その中でも主要なテーブルを中心に説明します。

faqcategories

FAQ のカテゴリを管理するためのテーブルです。

名前データ型説明
idINTEGERカテゴリの id です。
langVARCHAR(5)カテゴリの言語です。
parent_idINTEGERカテゴリの親カテゴリの id です。
nameVARCHAR(255)カテゴリ名です。
descriptionVARCHAR(255)カテゴリの説明です。
user_idINTEGERカテゴリ所有者の id です。
group_idINTEGERカテゴリ所有グループの id です。
activeINTEGER
imageVARCHAR(255)
show_homeINTEGER

SQL でテーブルの構造を確認します。

PRAGMA table_info('faqcategories');

SQL の実行結果は以下のとおりです。

cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	1		1
1	lang	VARCHAR(5)	1		2
2	parent_id	INTEGER	1		0
3	name	VARCHAR(255)	1		0
4	description	VARCHAR(255)	0	NULL	0
5	user_id	INTEGER	1		0
6	group_id	INTEGER	1	-1	0
7	active	INTEGER	0	1	0
8	image	VARCHAR(255)	0	NULL	0
9	show_home	INTEGER	0	NULL	0

faqdata

faq を管理するためのテーブルです。

名前データ型説明
idINTEGERfaq の id です。
langVARCHAR(5)faw の言語です。
solution_idINTEGER
revision_idINTEGER
activechar(3)
stickyINTEGER
keywordstext
thematext
contenttext
authorVARCHAR(255)
emailVARCHAR(255)
commentchar(1)
updatedVARCHAR(15)
links_stateVARCHAR(7)
links_check_dateINTEGER
date_startVARCHAR(14)
date_endVARCHAR(14)
createdDATETIME
notetext

先ほどと同様に,faqdata のテーブル構造を確認します。

PRAGMA table_info('faqdata');
cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	1		1
1	lang	VARCHAR(5)	1		2
2	solution_id	INTEGER	1		0
3	revision_id	INTEGER	1	0	0
4	active	char(3)	1		0
5	sticky	INTEGER	1		0
6	keywords	text	0	NULL	0
7	thema	text	1		0
8	content	text	0	NULL	0
9	author	VARCHAR(255)	1		0
10	email	VARCHAR(255)	1		0
11	comment	char(1)	0	'y'	0
12	updated	VARCHAR(15)	1		0
13	links_state	VARCHAR(7)	0	NULL	0
14	links_check_date	INTEGER	1	0	0
15	date_start	VARCHAR(14)	1	'00000000000000'	0
16	date_end	VARCHAR(14)	1	'99991231235959'	0
17	created	DATETIME	0	CURRENT_TIMESTAMP	0
18	notes	text	0	NULL	0

faqquestions

質問を管理するためのテーブルです。

名前データ型説明
idINTEGER
langVARCHAR(5)
usernameVARCHAR(100)
emailVARCHAR(100)
category_idINTEGER
questiontext
createdVARCHAR(20)
is_visiblechar(1)
answer_idINTEGER

faqquestions のテーブル構造を確認します。

cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	1		1
1	lang	VARCHAR(5)	1		0
2	username	VARCHAR(100)	1		0
3	email	VARCHAR(100)	1		0
4	category_id	INTEGER	1		0
5	question	text	1		0
6	created	VARCHAR(20)	1		0
7	is_visible	char(1)	0	'Y'	0
8	answer_id	INTEGER	1	0	0

faqvisits

faq の閲覧数を管理するテーブルです。

名前データ型説明
idINTEGERFAQ の id です。
langVARCHAR(5)FAQ の言語です。
visitsSMALLINT当該 FAQ への訪問数です。
last_visitINTEGER当該 FAQ へ最後に訪問された日です。

faqvisits のテーブル構造を確認します。

cid	name	type	notnull	dflt_value	pk
0	id	INTEGER	1		1
1	lang	VARCHAR(5)	1		2
2	visits	SMALLINT	1		0
3	last_visit	INTEGER	1		0

参考文献

更新履歴

  • 2024年11月24日 新規作成

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です