---
# System prepended metadata

title: DB
tags: [CST2020]

---

###### tags: `CST2020`
## 去年の仕様
[昨年度のDB](https://hackmd.io/@ss02jp/SJI3LZa1r)


# DB
## はじめに
<!-- * MariaDBのバージョンは以下の通りとします。(7/17 追記)
```bash
mysql  Ver 15.1 Distrib 10.4.6-MariaDB, for Linux (x86_64) using readline 5.1
``` -->

* 去年のDBの仕様から若干弄ってあるだけです
* データベース名: cst2020
* データベースには、foreign keyのみで難しい項目に関しては、トリガーを作成し、一部の処理を自動的に行うようにする。
* laravelならmigration ファイルを使えば簡単にできるかとおもいます。
* テーブル上のレコードidにはauto_increment属性を付与する。
* (アンダーバー)がついているテーブルは外部キーを表しています。
* 疑問などありましたら4403荒井までお願いします。
## DB仕様

* ユーザー情報テーブル(user)
ユーザとグループの関連性を参照するためのテーブル
このテーブルに、ユーザの登録情報を追加する可能性あり、passやユーザ名など(7/14 追記)
    |id|group_gid|password|
    |-|-|-|
    |ユーザーid|グループid|CTFのパスワード|
    |int, (auto_increment), primary key|int|char|
* チーム情報テーブル(group)
グループの情報を参照するためのテーブル
    |gid|gname|
    |-|-|
    |グループid|グループ名|
    |int, (auto_increment), primary key|text|
* 正回答テーブル(ac)
どのユーザがどの問題をどの時間で正回答したのかを参照するためのテーブル
(gidは不要な気がする)
7/2 gid消しました。 
2020 5/26 コメントusersテーブルから取得お願いします。
    |id|user_id|question_qid|ctime|
    |-|-|-|-|
    |レコードid|ユーザーid|問題id|正回答時間|
    |int, auto_increment, primary key|int|int|datetime|
* 問題テーブル(question)
問題内容と回答に対して難度・問題idを関連付け、それを参照するためのテーブル
    |qid|lv_lvid|title|content|answer|
    |-|-|-|-|-|
    |問題id|難度id|問題タイトル|問題内容|問題の正答|
    |int, (auto_increment), primary key|int|text|text|text|
* 難度別テーブル(lv)
難度別に難度の名称と難度idの得点と問題数を参照するためのテーブル
2020 5/20 qnumはコントローラ側でcountするのがいいと思う(qnum消す可能性大)
    |lvid|lvname|score|qnum|
    |-|-|-|-|
    |難度id|難度の名称|難度idの点数|難度の問題数|
    |int, (auto_increment), primary key|text|int|int||

* ユーザ別点数推移(uscore)
ユーザ別に点数の推移を参照するためのテーブル
トリガーでacからひっぱってきています
    |id|user_id|uscore|utime|
    |-|-|-|-|
    |レコードid|ユーザid|ユーザidの点数|記録時間|
    |int, auto_increment, primary key|int|int|datetime|
* グループ別点数推移(gscore)
グループ別に点数の推移を参照するためのテーブル
トリガーでacからひっぱってきています
(テーブルの列名の並びやprimaryについては、システム次第でより列数を削減したテーブルになる可能性有)
    |id|group_gid|gscore|gtime|
    |-|-|-|-|
    |レコードid|グループid|グループidの点数|記録時間|
    |int, auto_increment, primary key|int|int|time_stamp|    
    
* 競技得点(sort)
sortには仕分けという意味があるらしい。競技の得点を換算するためのテーブルdoneのcountで得点を換算する予定
    |id|group_gid|sort_time|done|
    |-|-|-|-|
    |レコードid|グループid|記録時間|成功or失敗|
    |int, auto_increment, primary y|int|time_stamp|boolean|    

* 質問テーブル(situmons)
中学生のCTFの時に質問するボックスがあるといいかなと思って実装しました。
    |id|situmons|answer|user_id|
    |-|-|-|-|
    |レコードid|質問|回答|ユーザid|
    |int, auto_increment, primary y|text|text|int|    

## 追加予定
* ニューステーブル(news)
詳細は競技班へ
    |id|title|author|date|text|uidread|
    |-|-|-|-|-|-|
    |レコードid|タイトル|作成者|作成日時|ニュース本文|見たユーザのID(カンマ区切り)|
    |int, auto_increment, primary key|varchar(64)|varchar(64)|datetime|text|text|

* 問題数テーブル(total)
総問題数と総点数を参照するためのテーブル
    |qnum|totalscore|
    |-|-|
    |総問題数|総点数|
    |int|int|
* 
* 競技で必要になるテーブル

* 質問箱(situmon)
多分質問箱を設置する予定なのでそれに伴い必要なテーブル
    
## 疑問点
メール機能はCTFだけのものなのか？

競技面との連携

## 今のところのDBのダンプ
```
-- phpMyAdmin SQL Dump
-- version 4.9.1
-- https://www.phpmyadmin.net/
--
-- ホスト: 127.0.0.1
-- 生成日時: 
-- サーバのバージョン： 10.4.8-MariaDB
-- PHP のバージョン: 7.3.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- データベース: `cst2020_proto`
--

DELIMITER $$
--
-- プロシージャ
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `ac` (IN `u_id` INT, IN `q_qid` INT, IN `c_time` DATETIME)  begin
            declare g_id int;
            declare q_score int;
            declare u_score int;
            declare g_score int;
            declare latest int;

    select score into q_score from lv where lvid in(select lv_lvid from questions where qid= q_qid);
    select group_gid into g_id from users where id=u_id;

    select uscore into latest from uscore where user_id=u_id order by utime desc limit 1;
    set u_score = q_score+ifnull(latest,0);
    insert into uscore(user_id,uscore,utime) values(u_id,u_score,c_time);

    select gscore into latest from gscore where group_gid=g_id order by gtime desc limit 1;
    set g_score = q_score+ifnull(latest,0);
    insert into gscore(group_gid,gscore,gtime) values(g_id,g_score,c_time);
    end$$

DELIMITER ;

-- --------------------------------------------------------

--
-- テーブルの構造 `ac`
--

CREATE TABLE `ac` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL,
  `question_qid` int(10) UNSIGNED NOT NULL,
  `ctime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- トリガ `ac`
--
DELIMITER $$
CREATE TRIGGER `ac` AFTER INSERT ON `ac` FOR EACH ROW call ac(new.user_id, new.question_qid ,new.ctime)
$$
DELIMITER ;

-- --------------------------------------------------------

--
-- テーブルの構造 `failed_jobs`
--

CREATE TABLE `failed_jobs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `connection` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `queue` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `failed_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `gachacount`
--

CREATE TABLE `gachacount` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `group_gid` int(10) UNSIGNED NOT NULL,
  `count` int(11) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `groups`
--

CREATE TABLE `groups` (
  `gid` int(10) UNSIGNED NOT NULL,
  `gname` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- テーブルのデータのダンプ `groups`
--

INSERT INTO `groups` (`gid`, `gname`, `created_at`, `updated_at`) VALUES
(1, 'Ateam', NULL, NULL),
(2, 'Bteam', NULL, NULL),
(3, 'Cteam', NULL, NULL),
(4, 'Dteam', NULL, NULL),
(5, 'Eteam', NULL, NULL);

-- --------------------------------------------------------

--
-- テーブルの構造 `gscore`
--

CREATE TABLE `gscore` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `group_gid` int(10) UNSIGNED NOT NULL,
  `gscore` int(10) UNSIGNED NOT NULL,
  `gtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `lv`
--

CREATE TABLE `lv` (
  `lvid` int(10) UNSIGNED NOT NULL,
  `lvname` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `score` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- テーブルのデータのダンプ `lv`
--

INSERT INTO `lv` (`lvid`, `lvname`, `score`) VALUES
(1, 'easy', '1'),
(2, 'normal', '2'),
(3, 'hard', '3');

-- --------------------------------------------------------

--
-- テーブルの構造 `migrations`
--

CREATE TABLE `migrations` (
  `id` int(10) UNSIGNED NOT NULL,
  `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `batch` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- テーブルのデータのダンプ `migrations`
--

INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES
(1, '2014_10_12_100000_create_password_resets_table', 1),
(2, '2019_08_19_000000_create_failed_jobs_table', 1),
(3, '2020_05_20_080953_create_lv_table', 1),
(4, '2020_05_22_190907_create_groups_table', 1),
(5, '2020_05_23_190907_create_users_table', 1),
(6, '2020_05_26_063236_create_questions_table', 1),
(7, '2020_05_26_063912_create_ac_table', 1),
(8, '2020_06_04_172304_create_trigger', 1),
(9, '2020_06_08_030612_ugscore_trigger', 1),
(10, '2020_06_08_033340_create_ugscore_table', 1),
(11, '2020_07_29_220251_create_situmon_table', 1),
(12, '2020_07_29_220933_create_sort_table', 1),
(13, '2020_07_29_221002_create_news_table', 1),
(14, '2020_08_03_144011_create_gachacount_table', 1);

-- --------------------------------------------------------

--
-- テーブルの構造 `news`
--

CREATE TABLE `news` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `author` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `date` datetime NOT NULL,
  `text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `password_resets`
--

CREATE TABLE `password_resets` (
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `questions`
--

CREATE TABLE `questions` (
  `qid` int(10) UNSIGNED NOT NULL,
  `lv_lvid` int(10) UNSIGNED NOT NULL,
  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `content` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `answer` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- テーブルのデータのダンプ `questions`
--

INSERT INTO `questions` (`qid`, `lv_lvid`, `title`, `content`, `answer`, `created_at`, `updated_at`) VALUES
(1, 1, 'テスト問題1_1', '1と打ち込んで', '1', NULL, NULL),
(2, 1, 'テスト問題1_2', '2と打ち込んで', '2', NULL, NULL),
(3, 1, 'テスト問題1_3', '3と打ち込んで', '3', NULL, NULL),
(4, 1, 'テスト問題1_4', '4と打ち込んで', '4', NULL, NULL),
(5, 1, 'テスト問題1_5', '5と打ち込んで', '5', NULL, NULL),
(6, 1, 'テスト問題1_6', '6と打ち込んで', '6', NULL, NULL),
(7, 1, 'テスト問題1_7', '7と打ち込んで', '7', NULL, NULL),
(8, 1, 'テスト問題1_8', '8と打ち込んで', '8', NULL, NULL),
(9, 1, 'テスト問題1_9', '9と打ち込んで', '9', NULL, NULL),
(10, 1, 'テスト問題1_10', '10と打ち込んで', '10', NULL, NULL),
(11, 1, 'テスト問題1_11', '11と打ち込んで', '11', NULL, NULL),
(12, 1, 'テスト問題1_12', '12と打ち込んで', '12', NULL, NULL),
(13, 1, 'テスト問題1_13', '13と打ち込んで', '13', NULL, NULL),
(14, 1, 'テスト問題1_14', '14と打ち込んで', '14', NULL, NULL),
(15, 1, 'テスト問題1_15', '15と打ち込んで', '15', NULL, NULL),
(16, 1, 'テスト問題1_16', '16と打ち込んで', '16', NULL, NULL),
(17, 1, 'テスト問題1_17', '17と打ち込んで', '17', NULL, NULL),
(18, 1, 'テスト問題1_18', '18と打ち込んで', '18', NULL, NULL),
(19, 1, 'テスト問題1_19', '19と打ち込んで', '19', NULL, NULL),
(20, 1, 'テスト問題1_20', '20と打ち込んで', '20', NULL, NULL),
(21, 2, 'テスト問題2_1', '1と打ち込んで', '1', NULL, NULL),
(22, 2, 'テスト問題2_2', '2と打ち込んで', '2', NULL, NULL),
(23, 2, 'テスト問題2_3', '3と打ち込んで', '3', NULL, NULL),
(24, 2, 'テスト問題2_4', '4と打ち込んで', '4', NULL, NULL),
(25, 2, 'テスト問題2_5', '5と打ち込んで', '5', NULL, NULL),
(26, 2, 'テスト問題2_6', '6と打ち込んで', '6', NULL, NULL),
(27, 2, 'テスト問題2_7', '7と打ち込んで', '7', NULL, NULL),
(28, 2, 'テスト問題2_8', '8と打ち込んで', '8', NULL, NULL),
(29, 2, 'テスト問題2_9', '9と打ち込んで', '9', NULL, NULL),
(30, 2, 'テスト問題2_10', '10と打ち込んで', '10', NULL, NULL),
(31, 2, 'テスト問題2_11', '11と打ち込んで', '11', NULL, NULL),
(32, 2, 'テスト問題2_12', '12と打ち込んで', '12', NULL, NULL),
(33, 2, 'テスト問題2_13', '13と打ち込んで', '13', NULL, NULL),
(34, 2, 'テスト問題2_14', '14と打ち込んで', '14', NULL, NULL),
(35, 2, 'テスト問題2_15', '15と打ち込んで', '15', NULL, NULL),
(36, 2, 'テスト問題2_16', '16と打ち込んで', '16', NULL, NULL),
(37, 2, 'テスト問題2_17', '17と打ち込んで', '17', NULL, NULL),
(38, 2, 'テスト問題2_18', '18と打ち込んで', '18', NULL, NULL),
(39, 2, 'テスト問題2_19', '19と打ち込んで', '19', NULL, NULL),
(40, 2, 'テスト問題2_20', '20と打ち込んで', '20', NULL, NULL),
(41, 3, 'テスト問題3_1', '1と打ち込んで', '1', NULL, NULL),
(42, 3, 'テスト問題3_2', '2と打ち込んで', '2', NULL, NULL),
(43, 3, 'テスト問題3_3', '3と打ち込んで', '3', NULL, NULL),
(44, 3, 'テスト問題3_4', '4と打ち込んで', '4', NULL, NULL),
(45, 3, 'テスト問題3_5', '5と打ち込んで', '5', NULL, NULL),
(46, 3, 'テスト問題3_6', '6と打ち込んで', '6', NULL, NULL),
(47, 3, 'テスト問題3_7', '7と打ち込んで', '7', NULL, NULL),
(48, 3, 'テスト問題3_8', '8と打ち込んで', '8', NULL, NULL),
(49, 3, 'テスト問題3_9', '9と打ち込んで', '9', NULL, NULL),
(50, 3, 'テスト問題3_10', '10と打ち込んで', '10', NULL, NULL),
(51, 3, 'テスト問題3_11', '11と打ち込んで', '11', NULL, NULL),
(52, 3, 'テスト問題3_12', '12と打ち込んで', '12', NULL, NULL),
(53, 3, 'テスト問題3_13', '13と打ち込んで', '13', NULL, NULL),
(54, 3, 'テスト問題3_14', '14と打ち込んで', '14', NULL, NULL),
(55, 3, 'テスト問題3_15', '15と打ち込んで', '15', NULL, NULL),
(56, 3, 'テスト問題3_16', '16と打ち込んで', '16', NULL, NULL),
(57, 3, 'テスト問題3_17', '17と打ち込んで', '17', NULL, NULL),
(58, 3, 'テスト問題3_18', '18と打ち込んで', '18', NULL, NULL),
(59, 3, 'テスト問題3_19', '19と打ち込んで', '19', NULL, NULL),
(60, 3, 'テスト問題3_20', '20と打ち込んで', '20', NULL, NULL);

-- --------------------------------------------------------

--
-- テーブルの構造 `situmons`
--

CREATE TABLE `situmons` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `situmon` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `answer` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `sort`
--

CREATE TABLE `sort` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `group_gid` int(10) UNSIGNED NOT NULL,
  `sort_time` datetime NOT NULL,
  `done` tinyint(1) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `uscore`
--

CREATE TABLE `uscore` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL,
  `uscore` int(10) UNSIGNED NOT NULL,
  `utime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- テーブルの構造 `users`
--

CREATE TABLE `users` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `group_gid` int(10) UNSIGNED NOT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- テーブルのデータのダンプ `users`
--

INSERT INTO `users` (`id`, `name`, `email`, `email_verified_at`, `password`, `group_gid`, `remember_token`, `created_at`, `updated_at`) VALUES
(1, 'anuma', 'a@a', NULL, '$2y$10$Zz/ZPvk97UNDv5kPRnTtxOQuCGyQoBMAqiPK/0MLPHXi/mvzF0nx2', 1, NULL, '2020-08-03 05:49:38', '2020-08-03 05:49:38'),
(2, 'anuma', 'a@b', NULL, '$2y$10$grdtqe.y5A22qozh71/mnupC/Di4GZYI36cN5eSFi4k3VWy5juaLO', 2, NULL, '2020-08-03 05:49:38', '2020-08-03 05:49:38'),
(3, 'anuma', 'a@c', NULL, '$2y$10$5/zJDDt/wWSul4A2VaUXZ.7HHp6SuoBvbnTJPynNLPgN/P9F8ZPKO', 3, NULL, '2020-08-03 05:49:38', '2020-08-03 05:49:38'),
(4, 'anuma', 'a@d', NULL, '$2y$10$XQjUVhnXDd.lkh7ipTAMzuIfyOs9o/eBbR8SNRvIPhGMSLR1fv1iC', 4, NULL, '2020-08-03 05:49:39', '2020-08-03 05:49:39'),
(5, 'anuma', 'a@e', NULL, '$2y$10$llo0jzuuJLGMSVryyCNw4e0m/aRwBRpG93wr50b.v9HJv.V0/oA4K', 5, NULL, '2020-08-03 05:49:39', '2020-08-03 05:49:39');

--
-- ダンプしたテーブルのインデックス
--

--
-- テーブルのインデックス `ac`
--
ALTER TABLE `ac`
  ADD PRIMARY KEY (`id`),
  ADD KEY `ac_user_id_foreign` (`user_id`),
  ADD KEY `ac_question_qid_foreign` (`question_qid`);

--
-- テーブルのインデックス `failed_jobs`
--
ALTER TABLE `failed_jobs`
  ADD PRIMARY KEY (`id`);

--
-- テーブルのインデックス `gachacount`
--
ALTER TABLE `gachacount`
  ADD PRIMARY KEY (`id`),
  ADD KEY `gachacount_group_gid_foreign` (`group_gid`);

--
-- テーブルのインデックス `groups`
--
ALTER TABLE `groups`
  ADD PRIMARY KEY (`gid`);

--
-- テーブルのインデックス `gscore`
--
ALTER TABLE `gscore`
  ADD PRIMARY KEY (`id`),
  ADD KEY `gscore_group_gid_foreign` (`group_gid`);

--
-- テーブルのインデックス `lv`
--
ALTER TABLE `lv`
  ADD PRIMARY KEY (`lvid`);

--
-- テーブルのインデックス `migrations`
--
ALTER TABLE `migrations`
  ADD PRIMARY KEY (`id`);

--
-- テーブルのインデックス `news`
--
ALTER TABLE `news`
  ADD PRIMARY KEY (`id`);

--
-- テーブルのインデックス `password_resets`
--
ALTER TABLE `password_resets`
  ADD KEY `password_resets_email_index` (`email`);

--
-- テーブルのインデックス `questions`
--
ALTER TABLE `questions`
  ADD PRIMARY KEY (`qid`),
  ADD KEY `questions_lv_lvid_foreign` (`lv_lvid`);

--
-- テーブルのインデックス `situmons`
--
ALTER TABLE `situmons`
  ADD PRIMARY KEY (`id`),
  ADD KEY `situmons_user_id_foreign` (`user_id`);

--
-- テーブルのインデックス `sort`
--
ALTER TABLE `sort`
  ADD PRIMARY KEY (`id`),
  ADD KEY `sort_group_gid_foreign` (`group_gid`);

--
-- テーブルのインデックス `uscore`
--
ALTER TABLE `uscore`
  ADD PRIMARY KEY (`id`),
  ADD KEY `uscore_user_id_foreign` (`user_id`);

--
-- テーブルのインデックス `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `users_email_unique` (`email`),
  ADD KEY `users_group_gid_foreign` (`group_gid`);

--
-- ダンプしたテーブルのAUTO_INCREMENT
--

--
-- テーブルのAUTO_INCREMENT `ac`
--
ALTER TABLE `ac`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `failed_jobs`
--
ALTER TABLE `failed_jobs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `gachacount`
--
ALTER TABLE `gachacount`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `groups`
--
ALTER TABLE `groups`
  MODIFY `gid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- テーブルのAUTO_INCREMENT `gscore`
--
ALTER TABLE `gscore`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `lv`
--
ALTER TABLE `lv`
  MODIFY `lvid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- テーブルのAUTO_INCREMENT `migrations`
--
ALTER TABLE `migrations`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--
-- テーブルのAUTO_INCREMENT `news`
--
ALTER TABLE `news`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `questions`
--
ALTER TABLE `questions`
  MODIFY `qid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=61;

--
-- テーブルのAUTO_INCREMENT `situmons`
--
ALTER TABLE `situmons`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `sort`
--
ALTER TABLE `sort`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `uscore`
--
ALTER TABLE `uscore`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- テーブルのAUTO_INCREMENT `users`
--
ALTER TABLE `users`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- ダンプしたテーブルの制約
--

--
-- テーブルの制約 `ac`
--
ALTER TABLE `ac`
  ADD CONSTRAINT `ac_question_qid_foreign` FOREIGN KEY (`question_qid`) REFERENCES `questions` (`qid`),
  ADD CONSTRAINT `ac_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);

--
-- テーブルの制約 `gachacount`
--
ALTER TABLE `gachacount`
  ADD CONSTRAINT `gachacount_group_gid_foreign` FOREIGN KEY (`group_gid`) REFERENCES `groups` (`gid`);

--
-- テーブルの制約 `gscore`
--
ALTER TABLE `gscore`
  ADD CONSTRAINT `gscore_group_gid_foreign` FOREIGN KEY (`group_gid`) REFERENCES `groups` (`gid`);

--
-- テーブルの制約 `questions`
--
ALTER TABLE `questions`
  ADD CONSTRAINT `questions_lv_lvid_foreign` FOREIGN KEY (`lv_lvid`) REFERENCES `lv` (`lvid`);

--
-- テーブルの制約 `situmons`
--
ALTER TABLE `situmons`
  ADD CONSTRAINT `situmons_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);

--
-- テーブルの制約 `sort`
--
ALTER TABLE `sort`
  ADD CONSTRAINT `sort_group_gid_foreign` FOREIGN KEY (`group_gid`) REFERENCES `groups` (`gid`);

--
-- テーブルの制約 `uscore`
--
ALTER TABLE `uscore`
  ADD CONSTRAINT `uscore_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);

--
-- テーブルの制約 `users`
--
ALTER TABLE `users`
  ADD CONSTRAINT `users_group_gid_foreign` FOREIGN KEY (`group_gid`) REFERENCES `groups` (`gid`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
```