Page-report for ooita 
indexへ戻る PC自作派へ戻る


FreeBSD顛末記
 しまぷ(う)がFreeBSDの設定に四苦八苦する楽しい話し
 のはずなのだが・・・
 

α+11話 α+12話 α+13話  
 
 

FreeBSD顛末記 α+11話 作ろう、ノベルサイトシステム!

しまぷ(う)は物書きが趣味である。 回線もADSLに変更した事だし、固定IPでサーバーでも立ち上げて、何かサービスを提供しようかなと考える。
んで、考えたのがノベルサイトシステムである。

ノベルサイト・システム
 ライター・リーダー・マスターの3種類のユーザータイプを持つ、小説投稿用のサイトである。
 元々は。CGIのみでデータベースを全く使用せずに構築しようかと言う事であったのだが、DBを使う方が断然楽なので突然方針変換!
 と言う訳で行ってみようかー、な具合である

用意するツールはCGIにPerlとDBにMy−SQLである。 まぁApache等は言うに及ばずなのでこの際は触れない。
基本的に開発環境がWindowsなのでどちらでも動く物かつ、筆者が知っている物を用意した訳である…
 

処理の種類としては、
 新規投稿関連----ライターからは撤回・訂正可能な、初期投稿リスト。
 投稿作品関連----初期投稿リストより一定期間を経てこちらに渡す。
 投稿者関連------投稿者のデータを保存、ライターから訂正可能。
 サイト管理関連----データをサイトとして立ち上げる為の処理手順。

DBのテーブルは…
 投稿者、新規投稿作品、投稿作品、ユーザー、サイトとそれぞれの派生ぐらいだろうか。


新規投稿関連
 新規投稿はどのデータベースにもデータがない場合を想定しています
新規投稿作品テーブル (newstorys)
newstory_ID VARCHAR Autonomber
writen_by TEXT 作者名
up_time VARCHAR 投稿日時
title TEXT 作品名
text MEDIUMTEXT 作品本文
ex_text MEDIUMTEXT 作品あとがき (データ未入力有り)
cast TEXT 登場人物 (データ未入力有り)
text_type VARCHAR 表示形式、等幅&トゥルータイプ等
newstorys_key VARCHAR 管理キー 暗号化済み 新規投稿作品のみ使用
phase  VARCHAR 状態 (del=公開停止処理済み作品/new=投稿作品/renew=投稿作品、改編済み)
serise_name  TEXT シリーズネーム (データ未入力有り)
serise_number TEXT シリーズナンバー (データ未入力有り)
category VARCHAR 種類 (カテゴリーテーブル参照)
genre VARCHAR 分類 (ジャンルテーブル参照)
outline TEXT 作品に対する大まかな説明 (データ未入力有り)



投稿作品テーブル (novels)
story_ID VARCHAR Autonomber
write_ID VARCHAR 作者名のID
up_time VARCHAR 投稿日時
title TEXT 作品名
text MEDIUMTEXT 作品本文
ex_text MEDIUMTEXT 作品あとがき (データ未入力有り)
cast_ID TEXT 登場人物のID (データ未入力有り)
phase  VARCHAR 状態 (del=公開停止処理済み作品/new=投稿作品/renew=投稿作品、改編済み)
serise_ID  TEXT シリーズのID (データ未入力有り)
serise_number TEXT シリーズナンバー (データ未入力有り)
category_ID VARCHAR 種類 (カテゴリーテーブル参照)
genre_ID VARCHAR 分類 (ジャンルテーブル参照)
outline TEXT 作品に対する大まかな説明 (データ未入力有り)

 
投稿者テーブル (writers)
write_ID VARCHAR AutoNumberなのでほうっておく
Writen by TEXT 作者名
Directory_name VARCHAR 作品が登録されているディレクトリ名 (データ未入力有り)
Writen_by_comment VARCHAR 作者自身のコメント (データ未入力有り)
email_add VARCHAR メインメールアドレス (データ未入力有り)
hp_title VARCHAR 持っていたらHPのタイトル (データ未入力有り)
hp_add VARCHAR 持っていたらHPのアドレス (データ未入力有り)
hp_baner_add VARCHAR 持っていたらHPのバナーアドレス (データ未入力有り)
hp_comment VARCHAR 持っていたらHPに対する紹介文 (データ未入力有り)
writer_pass VARCHAR 暗号化済みパスワード

カテゴリーテーブル (category)
category_ID VARCHAR AutoNumberなのでほうっておく
category_name TEXT カテゴリー名 (オリジナルSF、○○のSS)
category_Ex TEXT カテゴリーの説明
category_Directry VARCHAR ディレクトリ名

 
ジャンルテーブル(genre)
genre_ID VARCHAR 分類ID
genre_name TEXT 分類名 (通常作品、リレー作品、キャラクター設定、世界設定等)
genre_ex TEXT 分類の説明
genre_Directry VARCHAR ディレクトリ名

 
シリーズテーブル (serise)
serise_ID VARCHAR AutoNumberなのでほうっておく
serise_name TEXT シリーズ名
serise_No VARCHAR 投稿されているシリーズの作品数
serise_Ex TEXT 説明文



サイト設定…

HP
 カテゴリ別リスト
  ジャンル別リスト
 作者別リスト
 作品名別リスト

 CGI
  テンプレートファイルリスト
 
 
 
ページテーブル (page)
page_ID VARCHAR AutoNumberなのでほうっておく
page_title VARCHAR ページのタイトル
page_file_pathname VARCHAR HPからの相対的パスと名前
page_tempfile_pathname VARCHAR ページのテンプレートファイルの名前 (データ未入力有り)

データ…
Novel Syte System,/index.html,hp-index.html.temp
 
 
リンクテーブル (link)
link_ID VARCHAR AutoNumberなのでほうっておく
starting_page_ID VARCHAR リンクの機転となるページのID
target_page_ID VARCHAR リンク先のID



ユーザーテーブル (uasr) 
user_ID VARCHAR AutoNumberなのでほうっておく
user_name VARCHAR ユーザーの名前(投稿者とは別)
user_pass VARCHAR 暗号化済みパスワード
write_ID VARCHAR 投稿者のID(データ未入力有り)

authorityテーブル(authority)
authority_ID VARCHAR AutoNumberなのでほうっておく
authority_level VARCHAR 権限レベル(root manegiment writers writer)
authority_category VARCHAR 権限カテゴリ(データ未入力有り)
authority_user_ID_list TEXT 該当IDのリスト

権限の大小 root>manegiment>writers>writer
root 全部…
manegiment サイトの運営参加
writers 自分の投稿した作品のカテゴリのにのみ権限を持つ
writer 自分の投稿した作品にのみ権限を持つ


FreeBSD顛末記 α+12話 ああ、外部設計(干笑)

何せ後先考えずに作り出した物だけに収拾がつかなくなっていました。
とりあえず投稿者テーブルをユーザーテーブルに合併。

現存するテーブル(笑)
 

ユーザー管理
 ユーザー

作品分類
 カテゴリ、ジャンル、サブカテゴリ、ジャンル系

投稿作品管理
 作品

サイト設定
 ファイル


 

サイトの予定

トップページ
ユーザーページ(ログインが必要)
┣作品投稿・更新
┣公開・非公開
┣ユーザーデータ確認
┗分類管理者ページ
┃ ┗ジャンル・サブカテゴリ追加

┣作品閲覧
┃┣ジャンル別一覧
┃┃┣ジャンル別掲示板
┃┃┣ジャンル別リンクリスト
┃┃┗ジャンル別管理者ページ
┃┃ ┣管理者追加ページ
┃┃ ┗掲示板管理
┃┃
┃┣作者別一覧
┃┃┗作者のページ
┃┗投稿順一覧

作品検索

┣作家へのリンクリスト(バナーなし)
┣作家へのリンクリスト(バナーあり)

┣当サイトについての要望用掲示板
┗当サイトの注意事項
 

細かい所はまだ色々と考えている最中だったりする。
 
 


FreeBSD顛末記 α+13話 現在の外部設計…

サイト設計…
いろいろと覚え書きもある

1.1 サイト閲覧者・一般利用者用トップページ index.html
┣1.2 ユーザーページ(ログインが必要)
┃┣1.2.1 作品投稿
┃┣1.2.2 作品更新
┃┣1.2.3 公開・非公開
┃┣1.2.4 ユーザーデータ更新
┃┣1.2.5 新規ユーザー登録
┃┗1.2.6. ユーザー用忘備録

┣1.3 作品閲覧 http    /novels/index.html
┃┣1.3.1 ジャンル別一覧 /novels/(genrename).html
┃┃┣1.3.1.1 ジャンル別掲示板 /cgi-bin/genrebbs.cgi?genre=(genrename)&task=new
┃┃┗1.3.1.2 ジャンル別リンクリスト /(genrename)_link.html
┃┃
┃┣1.3.2 作者別一覧
┃┃┗1.3.2.1 各作者の作品一覧
┃┗1.4 投稿順一覧

┣1.5 作品検索 http

┣1.6 作家へのリンクリスト(バナーなし) http
┣1.7 作家へのリンクリスト(バナーあり) http

┣1.8 当サイトについての要望用掲示板 http
┗1.9 当サイトの注意事項 http

2.0 サイト管理者用 https
┣2.1サイト設計管理ページ
┃┣2.1.1 各種HTML等のテンプレート管理
┃┣2.1.2 データバックアップ・リストア
┃┣2.1.3 サイトの再構築
┃┣2.1.4 サイトの設計変更
┃┣2.1.5 ユーザーの権限変更
┃┣2.1.6 各管理ページのルール設定
┃┗

┣2.2 分類管理ページ
┃┣2.2.1 分類追加
┃┣2.2.2 作品分類変更
┃┗2.2.3 分類管理ユーザー追加

┣2.3 ジャンル別管理ページ
┃┣2.3.1 ジャンル内掲示板管理
┃┣2.3.2 ジャンル内リンク管理
┃┣2.3.3 ジャンル内作品テンプレート管理
┃┣2.3.4 ジャンル内ルール設定ページ
┃┗2.3.5 ジャンル内管理者追加

┣2.4 サイト掲示板管理ページ
┃┣2.4.1 掲示板管理
┃┣2.4.2 消去文字設定
┃┣2.4.3
┃┣
┃┗
 

んで、テーブルの方も再構築

ユーザ関係のテーブル

ユーザーテーブル
 ユーザーの主な情報を保存する、ってそのままだね

権限テーブル
 ユーザーの権限を表します

パスワードテーブル
 プレーンパスワードを保存する


分類関係のテーブル

カテゴリテーブル
 大分類用のテーブル、オリジナル・二次創作・シェアワールド・企画等

ジャンル用テーブル
 ジャンル分けのテーブル 管理上ジャンル別に管理グループを配置するためである。
  オリジナルなら、SFとか歴史とか…
  二次創作なら、元ネタ等
  シェアワールドや企画の場合はその題名が入る


作品関係のテーブル

作品用テーブル
 作品のデータが入る

連作管理用テーブル
 シリーズモノなどの連続作品のデータが入る

サイト関連テーブル

サイトマップテーブル
 各ファイルの相対パスでの場所の設定

シートテーブル
 HTMLのテンプレートを置いておく

後は掲示板をどうしようか考えている所。

ところでこのシステムは自宅サーバーで運用することを前提にしている訳ですが…
サーバーマシンにどのくらいの早さが必要か全くわからない状態(笑)
とりあえずHAL−3 4th UNIが開いているので、それに組み込む予定ではある。
 


indexへ戻る PC自作派へ戻る