phpMyFAQ のデータベースを調査
オープンソースの FAQ システムである phpMyFAQ のデータベースを調査しました。phpMyFAQ は様々な RDBMS を使えますが,今回は SQLite3 のデータベースを対象にします(MySQL,PstgreSQL,Microsoft SQL Server,MariaDB 等が使用できます)。
phpMyFAQ のテーブルは 42 個ありますが,その中でも主要なテーブルを中心に説明します。
faqcategories
FAQ のカテゴリを管理するためのテーブルです。
名前 | データ型 | 説明 |
---|---|---|
id | INTEGER | カテゴリの id です。 |
lang | VARCHAR(5) | カテゴリの言語です。 |
parent_id | INTEGER | カテゴリの親カテゴリの id です。 |
name | VARCHAR(255) | カテゴリ名です。 |
description | VARCHAR(255) | カテゴリの説明です。 |
user_id | INTEGER | カテゴリ所有者の id です。 |
group_id | INTEGER | カテゴリ所有グループの id です。 |
active | INTEGER | |
image | VARCHAR(255) | |
show_home | INTEGER |
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 を管理するためのテーブルです。
名前 | データ型 | 説明 |
---|---|---|
id | INTEGER | faq の id です。 |
lang | VARCHAR(5) | faw の言語です。 |
solution_id | INTEGER | |
revision_id | INTEGER | |
active | char(3) | |
sticky | INTEGER | |
keywords | text | |
thema | text | |
content | text | |
author | VARCHAR(255) | |
VARCHAR(255) | ||
comment | char(1) | |
updated | VARCHAR(15) | |
links_state | VARCHAR(7) | |
links_check_date | INTEGER | |
date_start | VARCHAR(14) | |
date_end | VARCHAR(14) | |
created | DATETIME | |
note | text |
先ほどと同様に,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
質問を管理するためのテーブルです。
名前 | データ型 | 説明 |
---|---|---|
id | INTEGER | |
lang | VARCHAR(5) | |
username | VARCHAR(100) | |
VARCHAR(100) | ||
category_id | INTEGER | |
question | text | |
created | VARCHAR(20) | |
is_visible | char(1) | |
answer_id | INTEGER |
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 の閲覧数を管理するテーブルです。
名前 | データ型 | 説明 |
---|---|---|
id | INTEGER | FAQ の id です。 |
lang | VARCHAR(5) | FAQ の言語です。 |
visits | SMALLINT | 当該 FAQ への訪問数です。 |
last_visit | INTEGER | 当該 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
参考文献
- phpMyFAQ
- Masassiah Blog「phpMyFAQ をレンタルサーバにインストール」(2022年3月27日)
更新履歴
- 2024年11月24日 新規作成