小 中 大
SQLテーブル・リファレンス 2009年2月7日
訳者注：

- このドキュメントの原文は以下のURLにあります。
  http://nucleuscms.org/documentation/devdocs/sqltables.html
- 誤訳にお気づきの方はNucleusCMS日本語フォーラムまでご連絡いただけると助かります。

# はじめに

開発者向けドキュメントの目次へ戻る

このドキュメントはNucleusのデータベース・テーブルのフィールドを解説しています。

構造はNucleus v3.4～のものに従っています

# 目次

- 文書中の色使いについて
- ブログ
  - nucleus_blog
  - nucleus_category
  - nucleus_item
  - nucleus_comment
  - nucleus_member
  - nucleus_team
- プラグイン
  - nucleus_plugin
  - nucleus_plugin_event
  - nucleus_plugin_option
  - nucleus_plugin_option_desc
- スキンとテンプレート
  - nucleus_skin
  - nucleus_skin_desc
  - nucleus_template
  - nucleus_template_desc
- 管理
  - nucleus_actionlog
  - nucleus_config
    - 可能なオプション
  - nucleus_tickets
  - nucleus_activation
- その他
  - nucleus_karma
  - nucleus_ban

# 色使い

この文書中では、カラムの型を示すために、文字の修飾を使っています。以下に例を示します:

プライマリ | プライマリキー
外部 | 外部キー（クリックすると参照先に飛ぶ）。MySQLは外部キーとの一貫性保持に責任を持たないことに注意
削除予定 | 同じ機能を提供するプラグインを優先するため、テーブルやカラムは将来のバージョンのNucleusで削除させる可能性が高い
フルテキスト | カラムにフルテキストのインデックスが付く（検索で使用する）

# nucleus_blogテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
bnumber | int(11) | (空白)auto_increment | BlogのID
bname | varchar(60) | (空白) | Blog名
bshortname | varchar(15) | (空白) | Blogの短縮名 (スキン変数 `<%blog%>`などで使うものと同じ)
bdesc | varchar(200) | NULL | Blogの説明
bcomments | tinyint(2) | 1 | コメントを許可する(1=許可, 0=不許可)
bmaxcomments | int(11) | 0 | メインの目次ページでのコメントの最大表示数。既定値(0)は制限なし。インライン・コメントを使わないのならここはいじらないこと
btimeoffset | decimal(3,1) | 0.0 | サーバー時刻との時差。アイテムはサーバー時刻にこの値を足した時間でデータベースに保存される
bnotify | varchar(60) | NULL | 通知するメール・アドレス。設定した通知イベント(内容は`bnotifytype`を参照)が発生した時にこのアドレス宛てにメールで通知される。
burl | varchar(100) | NULL | BlogのURL
bupdate | varchar(60) | NULL | アイテムが投稿されるたびに変更が必要な更新ファイル。サーバー上の絶対パスで指定する。
bdefskin | int(11) | 1 | このBlogを表示するときに使う標準のスキン
bpublic | tinyint(2) | 1 | メンバーー以外にもコメントを許可するかどうか(1=許可/0=不許可)
bconvertbreaks | tinyint(2) | 1 | 投稿されたアイテム中の改行を`<br />`に変換するかどうか(1=変換する/0=変換しない)
bdefcat | int(11) | NULL | カテゴリー未選択時に自動的に適用されるカテゴリーのカテゴリーID
bnotifytype | int(11) | 15 | どのイベントが起こったときに通知メールを送るか（通知するメール・アドレスは`bnotify`を参照）。三つの値の組み合わせからなり、掛け合わせることでnoifytypeの値が決まる。 3: 新しいコメント 5: 新しいカルマ投票 7: 新しいアイテム 既定値 = 新しいコメントと新しいカルマ投票（3×5=15）
ballowpast | tinyint(2) | '0' | 過去の日時での投稿を許可する (1=許可/0=不許可)
bincludesearch | tinyint(2) | '0' | 他のblogの検索の場合にも検索対象にする(1=対象にする/0=対象にしない)
breqemail | tinyint(2) | '0' | コメントにメールアドレスを要求する(1=要求する/0=要求しない)
bfuturepost | tinyint(2) | '0' | ブログ内に未来の日付の記事が存在するか？(1=存在する/0=存在しない) この値は投稿されたアイテムに応じて自動的に設定されます。

# nucleus_categoryテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
catid | int(11) | (空白)auto_increment | カテゴリーID
cblog | int(11) | 0 | カテゴリーが所属するBlogのID
cname | varchar(40) | NULL | カテゴリーの名前
cdesc | varchar(200) | NULL | カテゴリーの説明

# nucleus_itemテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
inumber | int(11) | (空白)auto_increment | アイテムのID
ititle | varchar(160) | NULL | タイトル
ibody | text | (空白) | 本文
imore | text | NULL | 追加部分(｢続き｣部分)
iblog | int(11) | 0 | アイテムが所属するBlogのID
iauthor | int(11) | 0 | アイテムの著者のメンバーID
itime | datetime | 0000-00-00 00:00:00 | 投稿時間（サーバーとの時差を反映したもの）
iclosed | tinyint(2) | 0 | アイテムが閉鎖されたかどうか (1=閉鎖/0=閉鎖していない).閉鎖すると、コメントやカルマ投票を受け付けない
idraft | tinyint(2) | 0 | アイテムはドラフト(下書き状態)かどうか。ドラフトは管理ページでだけ見ることが出来る(1=ドラフト/0=ドラフトでない)
ikarmapos | int(11) | 0 | ＋のカルマ投票の総数
ikarmaneg | int(11) | 0 | －のカルマ投票の総数
icat | int(11) | NULL | アイテムが所属するカテゴリーのID
iposted | tinyint(2) | 1 | アイテムに設定された投稿時刻を経過しているか？(1=している/0=していない)

# nucleus_commentテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
cnumber | int(11) | (空白)auto_increment | コメントのID
cbody | text | (空白) | コメントの本文
cuser | varchar(40) | NULL | 筆者名（メンバーでない場合，メンバーの場合はcmember参照）
cmail | varchar(100) | NULL | メール・アドレスあるいはURL（メンバーでない場合，メンバーの場合はcmember参照）
cemail | varchar(100) | NULL | メール・アドレス（メンバーでない場合，メンバーの場合はcmember参照）
cmember | int(11) | NULL | コメントを書いたメンバーのID（メンバーでない場合は0）
citem | int(11) | 0 | コメントが書き込まれたアイテムのID
ctime | datetime | 0000-00-00 00:00:00 | コメントを書き込んだ時間
chost | varchar(60) | NULL | コメントを入力したホスト名
cip | varchar(15) | (空白) | コメントを入力したホストのIPアドレス
cblog | int(11) | 0 | コメント書き込まれたアイテムが所属するBlogのID

# nucleus_memberテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
mnumber | int(11) | (空白)auto_increment | メンバーのID
mname | varchar(16) | (空白) | ログインID（表示される名前）
mrealname | varchar(60) | NULL | フルネーム(ハンドルネーム)
mpassword | varchar(40) | (空白) | パスワード (md5で暗号化してある)
memail | varchar(60) | NULL | メールアドレス
murl | varchar(100) | NULL | URL
mnotes | varchar(100) | NULL | 追加事項（メンバー自身が記述できる）
madmin | tinyint(2) | 0 | Super-admin（最高権限管理者）か (1=super-admin/0=super-adminではない super-adminはすべての権利を持つ。システムに一人はsuper-adminがいる)
mcanlogin | tinyint(2) | 1 | 管理エリアへのログインを許可 (1=許可/0=不許可)
mcookiekey | varchar(40) | NULL | このキーのコピーがユーザーのクッキーに保存され、ログオンに使う。メンバーがログオンすると、ランダムなcookiekeyが生成され、一方はデータベースに、他方がユーザーのコンピュータに保存される。
deflang | varchar(20) | '' | このメンバー用の言語ファイルを指定する

# nucleus_teamテーブル

Blogのチームメンバーごとに、この表にデータがある

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
tmember | int(11) | 0 | メンバーのID
tblog | int(11) | 0 | チーム・メンバーになっているBlog
tadmin | tinyint(2) | 0 | Blogの管理者か (0=管理者ではない/1=管理者。各Blogは一人は管理者がいる)

# nucleus_pluginテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
pid | int(11) | (空白)auto_increment | プラグインのID
pfile | varchar(40) | (空白) | 拡張子を覗いたプラグインのファイル名(例えば`NP_CommentControl`)。プラグイン・ディレクトリにファイルがないといけない。
porder | int(11) | 0 | プラグインが呼び出される順番。プラグイン・ページで表示される順番でもある。数字が小さい方がリストの上の方に来る。

# nucleus_plugin_eventテーブル

各プラグインが登録するイベントを記録するキャッシュ。リクエストの度にすべてのプラグインを読み込んで，それらが使うイベントを調べる手間を省くために保存している。プラグインのイベントについてはこちらを参照。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
pid | int(11) | 0 | プラグインのID
event | varchar(40) | NULL | 呼び出されるイベントの名前

# nucleus_plugin_optionテーブル

プラグイン・オプションの値を格納する。オプション自体の定義についてはnucleus_plugin_option_descテーブルを参照。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
oid | int(11) | (空白)auto_increment | オプションのID (nucleus_plugin_option_descテーブルを参照)
ovalue | TEXT | (空白) | オプションの値
ocontextid | int(11) | 0 | オプションが使われるコンテキストによって意味合いが変わる グローバル・コンテキスト: 使わない Blogコンテキスト: ブログのID カテゴリー・コンテキスト: カテゴリーのID メンバー・コンテキスト: メンバーのID

# nucleus_plugin_option_descテーブル

プラグインがオプションを作るたびにこのテーブル内にデータができる。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
oid | int(11) | (空白)auto_increment | オプションのID。nucleus_plugin_optionテーブルで使う
opid | int(11) | 0 | オプションを作ったプラグインのID
oname | varchar(20) | (空白) | オプションの名前
ocontext | varchar(20) | (空白) | オプションのコンテキスト(`グローバル`, `Blog`, `カテゴリー`,メンバー)
odesc | varchar(255) | NULL | オプションの説明
otype | varchar(20) | NULL | オプションの型.プラグインの文書を参照.
odef | text | NULL | オプションの既定値
oextra | text | NULL | select option型などで使う、その他のデータ

# nucleus_skinテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
sdesc | int(11) | 0 | skin_descへの参照
stype | varchar(20) | (空白) | スキン・パートの型。以下のいずれかを取る `index`(メインの目次ページ) `item`(個別アイテムページ) `archive`(月別アーカイブページ) `archivelist`(月別アーカイブ一覧ページ) `search`(検索ページ) `error`(エラーページ) `member`(メンバー詳細ページ) `imagepopup`(画像ポップアップウィンドウ)
scontent | text | (空白) | スキン・パートの内容

# nucleus_skin_descテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
sdnumber | int(11) | (空白)auto_increment | スキンのID
sdname | varchar(20) | (空白) | スキンの名前
sddesc | varchar(200) | NULL | スキンの説明
sdtype | varchar(40) | text/html | スキンのmimeタイプ
sdincmode | varchar(10) | normal | Includeモード。以下のいずれかを取る `normal`(スキンディレクトリを使用しない) `skindir`(スキンディレクトリを使用する)
sdincpref | varchar(50) | (空白) | ファイルをIncludeするときのプリフィックス

# nucleus_templateテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
tdesc | int(11) | 0 | template_descへの参照(nucleus_template_descのテンプレートID)
tpartname | varchar(20) | (空白) | テンプレート・パートの名前。以下のいずれかを取る ARCHIVELIST_FOOTER(アーカイブ一覧のフッター) ARCHIVELIST_HEADER(アーカイブ一覧のヘッダー) ARCHIVELIST_LISTITEM(アーカイブ一覧の本体) BLOGLIST_FOOTER(ブログ一覧のフッター) BLOGLIST_HEADER(ブログ一覧のヘッダー) BLOGLIST_LISTITEM(ブログ一覧の本体) CATLIST_FOOTER(カテゴリー一覧のフッター) CATLIST_HEADER(カテゴリー一覧のヘッダー) CATLIST_LISTITEM(カテゴリー一覧の本体) COMMENTS_AUTH(登録メンバーからのコメントへの追加表示) COMMENTS_BODY(コメントの本体) COMMENTS_CONTINUED(コメントの続きへのリンク) COMMENTS_FOOTER(コメントのフッター) COMMENTS_HEADER(コメントのヘッダー) COMMENTS_MANY(コメントが2つ以上の時) COMMENTS_NONE(コメントが無い時) COMMENTS_ONE(コメントが1つの時) COMMENTS_TOOMUCH(コメントが多すぎる時) DATE_FOOTER(日付のフッター) DATE_HEADER(日付のヘッダー) EDITLINK(アイテムを編集するためのリンク) FORMAT_DATE(日付フォーマット) FORMAT_TIME(時刻フォーマット) IMAGE_CODE(インライン画像のコード) ITEM_FOOTER(アイテムのフッター) ITEM_HEADER(アイテムのヘッダー) ITEM(アイテムの本体) LOCALE(Locale) MEDIA_CODE(メディアオブジェクトへのリンクコード) MORELINK(続きへのリンク) NEW(新しいアイテムに付けるマーク) POPUP_CODE(ポップアップ画像へのリンクコード) SEARCH_HIGHLIGHT(ハイライト表示) SEARCH_NOTHINGFOUND(検索で何も見つからなかった場合) この他、TemplateExtraFields イベントに対応したプラグインによって追加される事があります。
tcontent | text | (空白) | テンプレート・パートの内容

# nucleus_template_descテーブル

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
tdnumber | int(11) | (空白)auto_increment | テンプレートのID
tdname | varchar(20) | (空白) | テンプレートの名前
tddesc | varchar(200) | NULL | テンプレートの説明

# nucleus_actionlogテーブル

ログインやエラーなどのログを記録する

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
timestamp | datetime | 0000-00-00 00:00:00 | アクションの日時
message | varchar(255) | (空白) | アクションのメッセージ

# nucleus_configテーブル

Nucleusは、いくつかのグローバル・オプションを`nucleus_config`テーブルに記憶する。これは`$CONF['OptionName']` でアクセスできる。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
name | varchar(20) | (空白) | オプションの名前
value | varchar(128) | NULL | オプションの値

## 使用できるオプション

使用できるオプションの一覧を以下に示す。

はい/いいえタイプのオプションは1/0 (1=はい/真, 0=いいえ/偽)で示す。

設定の名前 | 既定値 | 説明
--- | --- | ---
DefaultBlog | 1 | デフォルトのBlogのID。Blogが明示的に記されていないときに使うもの
AdminEmail |  | 管理者のメール・アドレス
IndexURL |  | サイトのURL。最後に/が付く必要がある
Language | english | デフォルトの言語ファイル名。「言語ファイル名.php」ファイルがlanguageディレクトリに必要
SessionCookie | 0 | 寿命1ヶ月のクッキーの代わりにセッション・クッキーを使うかどうか
AllowMemberCreate | 0 | ビジターにアカウント作成を許すかどうか
AllowMemberMail | 1 | メンバー間でフォームを使ったメッセージ転送を許すかどうか（メール・アドレスは表示されない）
SiteName |  | サイトの名前
AdminURL |  | 管理エリアのURL。最後に/が付く必要がある
NewMemberCanLogon | 1 | 登録されたばかりのユーザーがログインできるかどうか。できないばあい，管理者が「can login」オプションを最初に変更する必要がある
DisableSite | 0 | サイトが無効状態になっているかどうか。無効状態の場合、管理者だけがアクセスできる。他のすべてのアクセスは`DisableSiteURL`にリダイレクトされる
DisableSiteURL |  | サイトが無効状態のときにリダイレクトされるURL
LastVisit | 0 | 「最後の訪問」のクッキーを保存するかどうか
MediaURL |  | メディア・フォルダのURL。最後に/が付く
AllowedTypes | jpg, jpeg, gif, mpg, mpeg, avi, mov, mp3, swf, png | メディア・フォルダにアップロードを許すファイル型
AllowLoginEdit | 0 | メンバーにログイン名とパスワードの変更を許すかどうか
AllowUpload | 1 | ファイルのアップロードを許すかどうか
DisableJsTools | 2 | JavaScriptツールバーの形式: 0: 多機能型 (IE) 1: ツールバーを無効にする 2: シンプル型(Gecko)
CookiePath | / | クッキーをセットするパス
CookiePrefix |  | クッキーの名称に追加するプレフィクス文字列。複数の Nucleus を同じドメインにインストールする際に便利で、別の Nucleus で同じセッションが適用されることを予防する。
CookieDomain |  | クッキーをセットするドメイン
CookieSecure | 0 | クッキーの通信にHTTPSを使うかどうか
MediaPrefix | 1 | アップロードしたファイル名に日付を加えるかどうか
MaxUploadSize | 1048576 | アップロードするファイルの最大値（バイト数）
NonmemberMail | 0 | メンバー以外の人にメンバーへのメールを許すかどうか
PluginURL |  | プラグイン・フォルダのURL。/で終わる必要がある
ProtectMemNames | 1 | このオプションが有効だと、ログインしていない人はメンバーと同じ名前でコメントを残せなくなる。こうすることによって、ゲストがメンバーのふりをすることを避けられる
BaseSkin | 1 | Nucleusに、自動的にスキンが決まらないときに、どのスキンを使うかを指定する。スキンのパートが空だったり、ブログやスキンが洗濯されていない場合に起こる
SkinsURL |  | スキン・フォルダのURL。最後に/が付く必要がある
ActionURL |  | `action.php`のURL.
URLMode | normal | `normal`(ノーマル)か`pathinfo`(FancyURLs)
DatabaseVersion | 250 | データベースの構造が更新された最後のNucleusのバージョン番号
DebugVars | 0 | デバッグモードを使用するか？(0=使用しない・1=使用する 最高管理者のみ設定可)
DefaultListSize | 10 | リスト表示の時のデフォルトの表示数

# nucleus_ticketsテーブル

Nucleus は `nucleus_tickets` を使用することによりセキュリティ上の問題を予防する。特に、管理エリアにおいて諸設定やデータベースの内容に影響する場合、チケットを必須とする。チケットは管理ページがリクエストされた時とフォームから呼び出された時に発行される。チケットは発行から 1時間後に破棄される。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
ticket | varchar(40) | (空白)auto_increment | 特定の単一ユーザに割り当てられるユニークなチケット。一般に、チケットは次のような形になる: `65303a785423b4d53c7b3e6579766f26`
member | int(11) | 0 | 当該チケットが有効適用されるメンバー。
ctime | datetime | 0000-00-00 00:00:00 | チケットの発行日時。チケットの有効期限は 1時間

# nucleus_activationテーブル

新しいメンバーが登録された時点では、そのメンバーアカウントがアクティベートされるまで Nucleus はログインを許可しない。アクティベートのためのリンクを含むメールが送信され、これによってアクティベートすることができる。`nucleus_activation`テーブルはアクティベートの進捗状況を追跡する。

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
vkey | varchar(40) | (空白) | アクティベートキー。このキーはメンバーのアクティベートコードに渡される。一般的に、キーは次のような形になる： `41cf637d4fbeeff954b4ca70b8bde9dd`
vmember | int(11) | 0 | アクティベートの必要があるメンバー。
vtime | datetime | 0000-00-00 00:00:00 | アクティベートキーが発行された日時。アクティベートキーの有効期間は 2日間である。
vtype | varchar(15) | (空白) | アクティベートの種別。 `forgot`: パスワードを忘れたメンバー。 `register`: 新しく登録されたメンバー。 `addresschange`: メールアドレスを変更したメンバー。
vextra | varchar(128) | (空白) | 追加的な情報。アクティベート種別が `addresschange` の場合、ここには `oldemailaddress/x` として、x には 0 または 1 の値が入る。x は memberテーブルにある `mcanlogin` の値を参照する。（アクティベートが完全に終了するまで、このユーザはログインできない）

# nucleus_karmaテーブル

このテーブルは将来はなくなる可能性が高い。同じ機能を提供するプラグインに譲るためだ。

この表は投票に使われたIPアドレスを記憶しておく。こうすることで一つのIPアドレスからは1票しか入れられなくなる

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
itemid | int(11) | 0 | アイテムのID
ip | char(15) | (空白) | 投票者のIPアドレス

# nucleus_banテーブル

このテーブルは将来のNucleusではなくなる可能性が高い。同じ機能を提供するプラグインに譲るためだ。

コメントやカルマ投票を禁止するIPアドレスを記憶

カラム名 | データ型 | 既定値 | 説明
--- | --- | --- | ---
iprange | varchar(15) | (空白) | IPアドレスの範囲。アドレス単独でもいいし，一部（左から）でもいい。一部の場合は範囲を示す
reason | varchar(255) | (空白) | 禁止の理由を示すメッセージ。コメントやカルマ投票を試みたときに表示される
blogid | int(11) | 0 | 禁止を有効にするBlogのID