Starbug1のテーブル定義

http://d.hatena.ne.jp/smeghead/20071105/backtostart で、パフォーマンス的に破綻したStarbug1の再構築を進めていきます。

「良いデザインは再デザインだ。」

結構仕事も忙しいので、いつもどおりボチボチ進めます。id:rayfillさんの助言とか、影舞のソースを参考にして作りなおすことにしたので、今考えているテーブルレイアウトを書いてみました。



プロジェクト情報(project)

プロジェクトの情報を格納する。環境設定も含まれる。

カラム名属性
名前(name)text 
説明(description)text  
home_urltext  
host_nametext  
smtp_servertext  
smtp_portinteger  
ml_addresstext  
admin_addresstext  

項目種別(element_type)

チケットの項目(件名、投稿者、概要、状態。。。)を格納する。カスタマイズ項目も全て同等で扱うため、項目種別テーブルのレコードとなる。

カラム名属性
idintegernot null primary key
typeinteger  
チケット属性(ticket_property)integer  
返信属性(reply_property)integernot null
必須項目(required)integernot null
項目名(element_name)text  
説明(description)text  
デフォルト値(default)text  
一覧表示(display_in_list)integernot null
並び順(sort)integernot null

選択肢(list_item)

コンボボックスなどの項目の選択肢を格納する。

カラム名属性
idintegernot null primary key
項目種別ID(element_type_id)integer  
名前(name)text  
クローズ(close)integernot null
並び順(sort)integernot null

チケット(ticket)

チケット1つにつき、1レコードとなる。

カラム名属性
idintegernot null primary key
最初の投稿(original_message_id)integernot null
最新の投稿(last_message_id)integernot null
登録日(registerdate)text  
クローズ(closed)integernot null
削除(deleted)integernot null

メッセージ(massage)

1つの投稿および返信が、1レコードとなる。

カラム名属性
idintegernot null primary key
チケットID(ticket_id)integernot null
field1text  
field2text  
field3text  
field4text  
field5text  
登録日(registerdate)text  

field\d というカラムを動的に増やすようにする。

添付ファイル(element_file)

カラム名属性
idintegernot null primary key
メッセージID(message_id)integernot null
カラム名(column_name)textnot null
ファイル名(filename)text  
サイズ(size)integer  
コンテントタイプ(content_type)text  
添付ファイル本体(content)blob  

次は、トリガが有効な場面があるか、viewが有効な場面があるかを考えてみます。

コメントする

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


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください