ちょっと書くことが無いので、今後の予定について書いておこうと思う。
今まで遊戯王マスターデュエルの話やConoHa WINGでデータベースを扱う話を多くしていたが、それには理由がある。
それは……。
マスターデュエルのデュエルの記録をサーバーで管理し、それを自分で建てたwebページからデータの追加や表示を行えるようにすること!
自分の使っていたデッキ毎に、先攻後攻の勝率やどんなデッキを相手するのが得意なのか、などをブラウザ上で確認出来るようにすれば、デッキ構築の際に大きく役に立つだろう。
また、月が変わる際に、その月のデュエルのデータをまとめて教えてくれるslack、discordのbotを作成しても面白いんじゃないかな?と思っている。
今現在完了しているのはデータベースをリモートに用意して、戦績を(SQL文を自分で書いて)記録するところまで。
こんな感じのテーブルを作成して……。
CREATE TABLE Results (
result_id INT AUTO_INCREMENT PRIMARY KEY,
my_deck_name VARCHAR(255),
move_order BOOLEAN,
cointoss BOOLEAN,
rule VARCHAR(255),
season INT,
opponent_rank VARCHAR(255),
issue BOOLEAN,
clincher VARCHAR(1023),
date date
);
CREATE TABLE Categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
result_id INT,
category_name VARCHAR(255),
FOREIGN KEY (result_id) REFERENCES Results(result_id)
);
こんな感じでデータをINSERTして……。
INSERT INTO Results (my_deck_name, move_order, cointoss, rule, season, opponent_rank, issue, clincher, date)
VALUES ('家具型ラビュリンス', TRUE, TRUE, 'ランクマッチ', 19, 'プラチナ1', TRUE, '闇のデッキ破壊ウイルスでサレンダーされた', CURDATE());
SET @result_id = LAST_INSERT_ID();
INSERT INTO Categories (result_id, category_name)
VALUES (@result_id, 'チェーンバーン');
このSQL文で結果を表示すれば……。
SELECT Results.date, Results.my_deck_name, IF(Results.move_order, '先攻', '後攻') AS move_order, IF(Results.cointoss, '表', '裏') AS cointoss, Results.rule, Results.season, Results.opponent_rank, IF(Results.issue, '勝ち', '負け') AS issue, Results.clincher, GROUP_CONCAT(Categories.category_name) AS category_names
FROM Results
JOIN Categories ON Results.result_id = Categories.result_id
GROUP BY Results.result_id;
こんな感じで結果などを表示してくれる!(SELECT文は見やすい様にphpmyadminを利用している)
または、デッキ毎の勝率や先攻率なども……。
SELECT my_deck_name, SUM(move_order) / COUNT(*) AS 先攻率, SUM(CASE WHEN move_order = TRUE AND issue = TRUE THEN 1 ELSE 0 END) / SUM(move_order) AS 先攻の勝率, SUM(CASE WHEN move_order = FALSE AND issue = TRUE THEN 1 ELSE 0 END) / (COUNT(*) - SUM(move_order)) AS 後攻の勝率
FROM Results
GROUP BY my_deck_name;
サクっと表示できる!便利~!!(先攻率高すぎでは?そして先行の勝率低すぎでは……?)
あとは、毎回データをINSERTする際にSQL文を自分で書いているのでそれをwebページなどから行えるようにしたいなぁと思っている。
特に相手のデッキのカテゴリーなどは誤字脱字をしてしまうと悲しいことになってしまうので、プルダウンメニューなどからカテゴリーを選択できるようになればいいなぁと思っている。
この作業が進み次第、別途記事にしようと考えている。
今日は特に話すことは無いのでこのあたりで。
ではでは~
コメント