こんな感じかねえ。
leagueテーブル
カラム名 |
データ型 |
初期値 |
値要求 |
説明 |
league_id |
INT |
auto_increment |
TRUE |
リーグのID |
title_en |
VARCHAR |
NULL |
TRUE |
リーグのタイトル(英) |
title_ja |
VARCHAR |
NULL |
TRUE |
リーグのタイトル(日) |
limit |
INT |
50 |
TRUE |
そのリーグで同時に戦えるKANOJO数 |
able |
BOOLEAN |
FALSE |
TRUE |
そのリーグが開催されているかのフラグそのリーグが開催されているかのフラグ |
KANOJOたちはリーグごとに登録され、同じリーグの中で争う。
リーグの種類は、随時増やしていこう。
All Genre |
無差別 |
Grass On |
眼鏡 |
Blonde |
金髪 |
Brunet |
茶髪 |
Black |
黒髪 |
Catty |
猫耳 |
Like a Cat |
ネコっぽさ |
Elvish |
エルフ耳+エルフっぽさ |
Chocolate |
褐色肌 |
Alabaster |
色白 |
Fairy |
コサージュ |
President Kaiba |
青瞳色白 |
Alice |
金髪色白青瞳 |
Snow White |
黒髪色白 |
Gal |
金髪褐色 |
Under the eye |
泣きぼくろ |
Twin Tail |
ツインテール |
Purple Haze |
紫髪 |
Pink Monsoon |
ピンク髪 |
Envy Monster |
緑瞳 |
Sheep Count |
モコモコの髪型 |
kanojoテーブル
カラム名 |
データ型 |
初期値 |
値要求 |
説明 |
kanojo_id |
INT |
auto_increment |
TRUE |
KANOJOのゲーム内でのID |
original_id |
INT |
NULL |
TRUE |
KANOJOのオリジナルのID |
league_id |
INT |
NULL |
FALSE |
そのKANOJOが現在エントリーしているリーグのID |
league_number |
INT |
NULL |
FALSE |
そのKANOJOの現在エントリーしているリーグでの背番号 |
entry_timestamp |
timestamp |
NULL |
FALSE |
そのKANOJOがエントリーした日時 |
win |
INT |
0 |
TRUE |
現在エントリーしているリーグでの勝ち数 |
lose |
INT |
0 |
TRUE |
現在エントリーしているリーグでの負け数 |
KANOJOは名前も登録しない。パースするの面倒だし。オリジナルIDは秘匿される。
cardテーブル
カラム名 |
データ型 |
初期値 |
値要求 |
説明 |
card_id |
INT |
auto_increment |
TRUE |
対戦カードのID |
league_id |
INT |
NULL |
TRUE |
その対戦カードの所属するリーグのID |
league_number1 |
INT |
NULL |
TRUE |
その対戦カードで指定される背番号(若) |
league_number2 |
INT |
NULL |
TRUE |
その対戦カードで指定される背番号(老) |
vote_count |
INT |
0 |
TRUE |
その対戦カードの投票数 |
対戦カードはこれで管理されるので、対戦の偏りはこれで極力解消されるはず。
matchテーブル
カラム名 |
データ型 |
初期値 |
値要求 |
説明 |
match_id |
INT |
auto_increment |
TRUE |
対戦記録 |
match_timestamp |
timestamp |
timestamp() |
TRUE |
その対戦の行われた日時 |
league_id |
INT |
NULL |
TRUE |
その対戦の行われたリーグのID |
winner |
INT |
NULL |
TRUE |
その対戦での勝者のKANOJOのID |
looser |
INT |
NULL |
TRUE |
その対戦での敗者のKANOJOのID |
実際の対戦記録をこれに保存する。
prizeテーブル
カラム名 |
データ型 |
初期値 |
値要求 |
説明 |
prize_id |
INT |
auto_increment |
TRUE |
プライズのID |
kanojo_id |
INT |
NULL |
TRUE |
そのプライズを得たKANOJOのID |
league_id |
INT |
NULL |
TRUE |
そのプライズを発生させたリーグのID |
win |
INT |
0 |
TRUE |
勝ち数 |
lose |
INT |
0 |
TRUE |
負け数 |
rate |
DOUBLE |
0 |
TRUE |
勝ち数/(勝ち数+負け数) |
regist_date |
timestamp |
timestamp() |
TRUE |
そのプライズの発生年月 |
あるKANOJOがそのリーグを「卒業」すると与えられるプライズ。別表を使ってrateからrankが算出される。
rankはSABCDEFZの7段階。全勝もしくは全敗しないとSやZは発生しないが。
rateからrankの計算
rate |
rank |
1.00 |
S |
0.91以上 |
A |
0.67以上 |
B |
0.33以上 |
C |
0.09以上 |
D |
0.01以上 |
E |
0 |
Z |