ノベルゲームの リレーショナルなテーブルをかんがえてみた

ノベルゲームの リレーショナルなテーブルをかんがえてみた
まだ机上の設計でまだ試していない

有料版のSimpleSQL(SQLITE)を検討してみる。40ドル
http://www.kfactory.net/2018/08/simplesql.html

SQLITEなのでSQLSERVERでは使えない型があるかも
ORDER順で並べ替えて、ストーリーが進行する

--SQLLite用人事退職官
CREATE TABLE T_STORYBOARD(
ID integer primary key autoincrement,
ID_USER integer NOT NULL,
PARAGRAPH_CODE nvarchar(50) NOT NULL,
PARAGRAPH_TEXT text NOT NULL,
ID_BRANCHE1 integer ,
ID_BRANCHE2 integer ,
ID_BRANCHE3 integer ,
Q1_TEXT text,
Q2_TEXT text,
Q3_TEXT text,
FUNCTION_NAME nvarchar(100),
ORDER_JUN integer NOT NULL,
IS_VALID integer NOT NULL,--データ必要か不要か
IS_RETIRE integer NOT NULL,--退職したか、IS_VALID:1,IS_RETIRE:0,1で使用する。IS_VALID:0はストーリー上、不要とみなす
IMAGE nvarchar(100),
ANIME nvarchar(100),
DATE_CREATE datetime,
DATE_UPDATE datetime

)
--IS_RETIREは初期値は0:就業中(退職していない)1で退職になる
insert into T_STORYBOARD VALUES(1,1,'00010','こんにちは','00020','00030','00040','分岐1','分岐2','分岐3','testFunction1',1,1,0,'test1.png','anime1','2019/06/30','2019/06/30');
insert into T_STORYBOARD VALUES(2,1,'00020','元気ですか?','00030','00040','00050','分岐1','分岐2','分岐3','testFunction2',2,1,0,'test2.png','anime2','2019/06/30','2019/06/30');


--user master初期値 このレコードから、ユーザ情報を作成する
--userテーブルに挿入するときはIS_VALIDを追加する

CREATE TABLE T_USER_MASTER(
ID integer primary key autoincrement,
USER_NAME nvarchar(100) NOT NULL,
LEVEL integer ,
age integer ,
physical_strength int,--体力
Knowledge integer ,--知識
experience integer ,--経験値
want_retire integer ,--退職したい気分
sex_type integer ,--性別 1:man 2:woman
next_level_to integer 

)

--USER初期値データ挿入、ゲームスタート時に登録する。一回だけ
INSERT INTO T_USER_MASTER VALUES(1,'主人公',1,24,50,50,1,10,1,100)
INSERT INTO T_USER_MASTER VALUES(2,'エライ部長',20,42,50,250,120,5,1,300)

--USER データ、ゲームオーバ、リスタートになるまで使用。不要のときにIS_VALIDを0にして不要にする
CREATE TABLE T_USER(
ID integer primary key autoincrement,
--USER_NAME nvarchar(100) NOT NULL, 主人公とかの名前は不要、ID_USER_MASTERでわかる
ID_USER_MASTER integer ,
LEVEL integer ,
physical_strength integer ,--体力
Knowledge integer ,--知識
experience integer ,--経験値 ここの値でレベルが上がる
want_retire integer ,--退職したい気分
sex_type integer ,--性別
next_level_to integer,--次のレベルに上がるまでの経験値
IS_VALID integer, --必要、不要フラグ
	DATE_CREATE datetime NOT NULL,
	DATE_UPDATE datetime NOT NULL
)

–休みタイプ
CREATE TABLE T_REASON(
ID integer primary key autoincrement,
ID_USER INTEGER NOT NULL,
ID_YASUMI_TYPE INTEGER NOT NULL,–休みタイプ
DATE_SHUTOKU datetime NOT NULL,
IS_VALID INTEGER NOT NULL,
DATE_CREATE datetime NOT NULL,
DATE_UPDATE datetime NOT NULL
)
–休みタイプマスター
CREATE TABLE T_YASUMI_TYPE_MASTER (
ID INTEGER NOT NULL,
REASON TEXT NOT NULL,
IS_VALID INTEGER NOT NULL
)

AS:SQL Mk-2を使ってみた
SQLITEではファイルを指定する

こちらの記事もどうぞ