/* * table.sql * Copyright (C) 2022 veypi * * Distributed under terms of the Apache license. */ CREATE TABLE IF NOT EXISTS `user` ( `id` varchar(32) NOT NULL DEFAULT '' COMMENT 'User UUID', `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, `username` varchar(255) NOT NULL UNIQUE, `nickname` varchar(255), `email` varchar(255) UNIQUE, `phone` varchar(255) UNIQUE, `icon` varchar(255), `_real_code` varchar(32), `_check_code` binary(48), `status` int NOT NULL COMMENT '状态(0:ok,1:disabled)' DEFAULT 0, `used` int NOT NULL DEFAULT 0, `space` int NOT NULL DEFAULT 300, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `app` ( `id` varchar(32) NOT NULL, `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, `_key` varchar(32) NOT NULL, `name` varchar(255) NOT NULL, `icon` varchar(255), `des` TEXT, `user_count` int NOT NULL DEFAULT 0, `hide` tinyint(1) NOT NULL DEFAULT 0, `join_method` int NOT NULL DEFAULT 0, `role_id` varchar(32), `redirect` varchar(255), `status` int NOT NULL COMMENT '状态(0:ok,1:disabled)' DEFAULT 0, PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `app_user` ( `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, `app_id` varchar(32) NOT NULL, `user_id` varchar(32) NOT NULL, `status` int NOT NULL DEFAULT 0 COMMENT '0: ok,1:disabled,2:applying,3:deny', 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, `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, `app_id` varchar(32) NOT NULL, `name` varchar(255) NOT NULL, `des` varchar(255), `user_count` int NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, FOREIGN KEY (`app_id`) REFERENCES `app`(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `user_role` ( `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, `user_id` varchar(32) NOT NULL, `role_id` varchar(32) NOT NULL, `status` varchar(32) NOT NULL DEFAULT 0, 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` ( `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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` ( `id` int NOT NULL AUTO_INCREMENT, `created` datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, `updated` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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 NOT NULL DEFAULT 0, -- PRIMARY KEY (`app_id`,`name`, `role_id`, `user_id`) USING BTREE, PRIMARY KEY (`id`), 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; INSERT INTO `app` (`id`, `name`, `_key`, `role_id`) VALUES ('FR9P5t8debxc11aFF', 'oa', 'AMpjwQHwVjGsb1WC4WG6', '1lytMwQL4uiNd0vsc'); INSERT INTO `resource` (`app_id`, `name`) VALUES ('FR9P5t8debxc11aFF', 'app'), ('FR9P5t8debxc11aFF', 'user'); INSERT INTO `role` (`id`, `app_id`, `name`) VALUES ('1lytMwQL4uiNd0vsc', 'FR9P5t8debxc11aFF', 'admin'); INSERT INTO `access` (`app_id`, `name`, `role_id`, `user_id`,`level`) VALUES ('FR9P5t8debxc11aFF', 'app', '1lytMwQL4uiNd0vsc', NULL,5), ('FR9P5t8debxc11aFF', 'user', '1lytMwQL4uiNd0vsc', NULL,5); ALTER TABLE `app` ADD FOREIGN KEY (`role_id`) REFERENCES `role`(`id`);