You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/oab/sql/table.sql

153 lines
5.0 KiB
MySQL

/*
* table.sql
* Copyright (C) 2022 veypi <i@veypi.com>
*
* Distributed under terms of the Apache license.
*/
2 years ago
DROP DATABASE test;
CREATE DATABASE test CHARSET=utf8;
USE test;
CREATE TABLE IF NOT EXISTS `user`
(
`id` varchar(32) NOT NULL DEFAULT '' COMMENT 'User UUID',
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_flag` tinyint(1) NOT NULL,
`username` varchar(255) NOT NULL UNIQUE,
`nickname` varchar(255),
`email` varchar(255) UNIQUE,
`phone` varchar(255) UNIQUE,
`icon` varchar(255),
2 years ago
`real_code` varchar(32),
`check_code` binary(48),
`status` int NOT NULL COMMENT '状态0ok1disabled',
2 years ago
`used` int NOT NULL DEFAULT 0,
`space` int DEFAULT 300,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `app`
(
`id` varchar(32) NOT NULL,
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_flag` tinyint(1) NOT NULL,
2 years ago
`key` varchar(32) NOT NULL,
`name` varchar(255) NOT NULL,
`icon` varchar(255),
`des` varchar(255),
2 years ago
`user_count` int NOT NULL DEFAULT 0,
`hide` tinyint(1) NOT NULL DEFAULT 0,
`join_method` varchar(32) NOT NULL DEFAULT 'auto',
`role_id` varchar(32),
`redirect` varchar(255),
`status` int NOT NULL COMMENT '状态0ok1disabled',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `app_user`
(
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`app_id` varchar(32) NOT NULL,
`user_id` varchar(32) NOT NULL,
`status` varchar(32) NOT NULL,
PRIMARY KEY (`user_id`,`app_id`) USING BTREE,
FOREIGN KEY (`app_id`) REFERENCES `app`(`id`),
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='app_to_user';
CREATE TABLE IF NOT EXISTS `role`
(
`id` varchar(32) NOT NULL,
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_flag` tinyint(1) NOT NULL,
`app_id` varchar(32) NOT NULL,
`name` varchar(255) NOT NULL,
`des` varchar(255),
`user_count` int NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
FOREIGN KEY (`app_id`) REFERENCES `app`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `user_role`
(
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_id` varchar(32) NOT NULL,
`role_id` varchar(32) NOT NULL,
`status` varchar(32) NOT NULL,
PRIMARY KEY (`user_id`,`role_id`) USING BTREE,
FOREIGN KEY (`role_id`) REFERENCES `role`(`id`),
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `resource`
(
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_flag` tinyint(1) NOT NULL,
`app_id` varchar(32) NOT NULL,
`name` varchar(32) NOT NULL,
`des` varchar(255),
PRIMARY KEY (`app_id`,`name`) USING BTREE,
FOREIGN KEY (`app_id`) REFERENCES `app`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `access`
(
2 years ago
`created` datetime DEFAULT CURRENT_TIMESTAMP,
`updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`delete_flag` tinyint(1) NOT NULL,
`app_id` varchar(32) NOT NULL,
`name` varchar(32) NOT NULL,
`role_id` varchar(32) NULL DEFAULT NULL,
`user_id` varchar(32) NULL DEFAULT NULL,
`rid` varchar(32) DEFAULT NULL COMMENT '资源子id',
`level` int DEFAULT 0,
-- PRIMARY KEY (`app_id`,`name`, `role_id`, `user_id`) USING BTREE,
FOREIGN KEY (`role_id`) REFERENCES `role`(`id`),
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`),
FOREIGN KEY (`app_id`,`name`) REFERENCES `resource`(`app_id`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2 years ago
INSERT INTO `app` (`id`, `name`, `key`, `role_id`)
VALUES ('FR9P5t8debxc11aFF', 'oa', 'AMpjwQHwVjGsb1WC4WG6', '1lytMwQL4uiNd0vsc');
INSERT INTO `resource` (`app_id`, `name`)
2 years ago
VALUES ('FR9P5t8debxc11aFF', 'app');
2 years ago
INSERT INTO `role` (`id`, `app_id`, `name`)
VALUES ('1lytMwQL4uiNd0vsc', 'FR9P5t8debxc11aFF', 'admin');
INSERT INTO `access` (`app_id`, `name`, `role_id`, `user_id`)
2 years ago
VALUES ('FR9P5t8debxc11aFF', 'app', '1lytMwQL4uiNd0vsc', null);
ALTER TABLE `app`
ADD FOREIGN KEY (`role_id`) REFERENCES `role`(`id`);