今後の予定

ちょっと書くことが無いので、今後の予定について書いておこうと思う。

今まで遊戯王マスターデュエルの話や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ページなどから行えるようにしたいなぁと思っている。

特に相手のデッキのカテゴリーなどは誤字脱字をしてしまうと悲しいことになってしまうので、プルダウンメニューなどからカテゴリーを選択できるようになればいいなぁと思っている。

この作業が進み次第、別途記事にしようと考えている。

今日は特に話すことは無いのでこのあたりで。

ではでは~

コメント

タイトルとURLをコピーしました