PSSdev/データベース仕様書
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[PSSdev]]
#contents
<a href="https://de.chaturbate.eu.com/" rel="nofollow">ch...
* 概要 [#qc802677]
** SQLite を使った実装 [#hbb9d286]
既存の pdb2 レイヤーの下に、SQLite を用いた DB レイヤーを...
アプリケーション側のインタフェースは pdb2 に似た pdb3 レ...
実装は Bridgeroot で行う。
* テーブル [#g624b430]
pdb3 は DB で実装されるため,SQL テーブルが基礎となる.
ここでは各テーブルのスキーマや役割などについて解説する.
- [[./テーブル]]
* 実装 [#hf1fb0ef]
** 各IDの有効範囲 [#ze2ce3dc]
||user-id|element-id|mode-id|log-id|daily-id|
|初期状態(最初の起動時)|x|x|x|x|x|
|ユーザ名設定後|o|x|x|x|x|
|問題集選択後|o|o|x|x|x|
|モード選択後|o|o|o|x|x|
|学習前|o|o|o|△(仮設定)|△(仮設定)|
|学習後|o|o|o|o(仮設定IDでinsert)|o(仮設定IDでinsert)|
学習前は log-id の最大値を log_id table から取得し,仮設...
学習後は insert する.
daily-id についても同様.
** 履歴の更新 [#i44d93c2]
学習管理クラス CTransDlg より DailyLog (daily_log + daily...
* 互換性 [#yb454b4e]
pdb2 と pdb3 の互換性について.
** 最終不正解問題,最終学習問題 [#t05cd5a4]
pdb2 では各問題の履歴に「前回の不正解フラグ」と「前回の学...
これらは各問題が所属する問題集を最後に学習したとき(前回...
pdb3 においては各問題が問題集とは独立した存在であるため,...
従って,これらの履歴情報は別の形で実装する.
まず,「学習毎の履歴」に「どの問題を学習したか」という情...
但し,履歴の移行時にはこれらの情報は切り捨てられる.
これはフラグによる情報は daily_questions_log よりも情報量...
** 学習毎の履歴 [#p1c1afaa]
学習毎の履歴について、pdb3 では各回で学習した問題IDとその...
このため、pdb3::DailyLog には正解数と不正解数のカウンタが...
履歴の pdblog2 -> pdb3 への移行時には、pdblog2::DailyLog ...
従って、DailyQuestionLog を利用する際には、qid=0 のものは...
このような移行を行うのは,pdb3 への移行後に「正解率推移グ...
* ビューの例 [#p106b1e8]
** v_folder [#k9342382]
folder テーブルに名前を付けたもの。
CREATE VIEW v_folder AS
SELECT e1.name AS 'name', e2.name AS folder
FROM folder, element_info AS e1, element_info AS e2
WHERE folder.id = e1.id AND folder.fid = e2.id
* その他 [#l3b9b1c5]
** auto-increment in question table [#t1b97863]
INSERT INTO question VALUES(NULL,'zero','0','h','desc','...
NULL を許可している INTEGER PRIMARY KEY に NULL を指定す...
で、その際の値は sqlite_last_insert_rowid() で取得できる。
>このことから、おそらく実装としては rowid をそのまま INTE...
終了行:
[[PSSdev]]
#contents
<a href="https://de.chaturbate.eu.com/" rel="nofollow">ch...
* 概要 [#qc802677]
** SQLite を使った実装 [#hbb9d286]
既存の pdb2 レイヤーの下に、SQLite を用いた DB レイヤーを...
アプリケーション側のインタフェースは pdb2 に似た pdb3 レ...
実装は Bridgeroot で行う。
* テーブル [#g624b430]
pdb3 は DB で実装されるため,SQL テーブルが基礎となる.
ここでは各テーブルのスキーマや役割などについて解説する.
- [[./テーブル]]
* 実装 [#hf1fb0ef]
** 各IDの有効範囲 [#ze2ce3dc]
||user-id|element-id|mode-id|log-id|daily-id|
|初期状態(最初の起動時)|x|x|x|x|x|
|ユーザ名設定後|o|x|x|x|x|
|問題集選択後|o|o|x|x|x|
|モード選択後|o|o|o|x|x|
|学習前|o|o|o|△(仮設定)|△(仮設定)|
|学習後|o|o|o|o(仮設定IDでinsert)|o(仮設定IDでinsert)|
学習前は log-id の最大値を log_id table から取得し,仮設...
学習後は insert する.
daily-id についても同様.
** 履歴の更新 [#i44d93c2]
学習管理クラス CTransDlg より DailyLog (daily_log + daily...
* 互換性 [#yb454b4e]
pdb2 と pdb3 の互換性について.
** 最終不正解問題,最終学習問題 [#t05cd5a4]
pdb2 では各問題の履歴に「前回の不正解フラグ」と「前回の学...
これらは各問題が所属する問題集を最後に学習したとき(前回...
pdb3 においては各問題が問題集とは独立した存在であるため,...
従って,これらの履歴情報は別の形で実装する.
まず,「学習毎の履歴」に「どの問題を学習したか」という情...
但し,履歴の移行時にはこれらの情報は切り捨てられる.
これはフラグによる情報は daily_questions_log よりも情報量...
** 学習毎の履歴 [#p1c1afaa]
学習毎の履歴について、pdb3 では各回で学習した問題IDとその...
このため、pdb3::DailyLog には正解数と不正解数のカウンタが...
履歴の pdblog2 -> pdb3 への移行時には、pdblog2::DailyLog ...
従って、DailyQuestionLog を利用する際には、qid=0 のものは...
このような移行を行うのは,pdb3 への移行後に「正解率推移グ...
* ビューの例 [#p106b1e8]
** v_folder [#k9342382]
folder テーブルに名前を付けたもの。
CREATE VIEW v_folder AS
SELECT e1.name AS 'name', e2.name AS folder
FROM folder, element_info AS e1, element_info AS e2
WHERE folder.id = e1.id AND folder.fid = e2.id
* その他 [#l3b9b1c5]
** auto-increment in question table [#t1b97863]
INSERT INTO question VALUES(NULL,'zero','0','h','desc','...
NULL を許可している INTEGER PRIMARY KEY に NULL を指定す...
で、その際の値は sqlite_last_insert_rowid() で取得できる。
>このことから、おそらく実装としては rowid をそのまま INTE...
ページ名: