-- 创建语言表 CREATE TABLE `ns_languages` ( `id` INT AUTO_INCREMENT PRIMARY KEY , `code` VARCHAR (10) NOT NULL COMMENT '语言代码(如 en, zh, fr)' , ` name ` VARCHAR (100) NOT NULL COMMENT '语言名称(如 English, 中文, Français)' , `enabled` BOOLEAN DEFAULT TRUE COMMENT '是否启用' , `sort_code` INT COMMENT '排序码' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , `remark` TEXT COMMENT '备注' ) ENGINE=InnoDB COMMENT= '语言表,存储系统支持的语言列表' ; -- 创建翻译表 CREATE TABLE `ns_translations` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `language_id` INT NOT NULL COMMENT '语言ID' , `translation_key` VARCHAR (255) NOT NULL COMMENT '翻译键' , `translation_value` TEXT COMMENT '翻译值' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`language_id`) REFERENCES `ns_languages` (`id`) ) ENGINE=InnoDB COMMENT= '翻译表,存储对应各语言的界面元素的翻译' ; -- 创建租户表 CREATE TABLE `ns_tenant` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , ` name ` VARCHAR (255) NOT NULL COMMENT '租户名称' , `description` TEXT COMMENT '租户描述' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , `language_id` INT DEFAULT 1 COMMENT '默认语言ID' , FOREIGN KEY (`language_id`) REFERENCES `ns_languages` (`id`) ) ENGINE=InnoDB COMMENT= '租户表,存储租户基本信息' ; -- 创建用户表 CREATE TABLE `ns_user` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , ` name ` VARCHAR (255) NOT NULL COMMENT '用户名' , `email` VARCHAR (255) UNIQUE COMMENT '邮箱' , ` password ` VARCHAR (255) COMMENT '密码' , `tenant_id` BIGINT NOT NULL COMMENT '租户ID' , `language_id` INT DEFAULT 1 COMMENT '默认语言ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`), FOREIGN KEY (`language_id`) REFERENCES `ns_languages` (`id`) ) ENGINE=InnoDB COMMENT= '用户表,存储租户内用户的信息,平台用户使用特定租户ID' ; -- 创建用户角色关系表 CREATE TABLE `ns_user_role` ( `user_id` BIGINT NOT NULL COMMENT '用户ID' , `role_id` BIGINT NOT NULL COMMENT '角色ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , PRIMARY KEY (`user_id`, `role_id`), FOREIGN KEY (`user_id`) REFERENCES `ns_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE , FOREIGN KEY (`role_id`) REFERENCES `ns_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB COMMENT= '用户角色关系表,用于存储用户和角色之间的多对多关系' ; -- 创建角色表 CREATE TABLE `ns_role` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , ` name ` VARCHAR (255) NOT NULL COMMENT '角色名称' , `description` TEXT COMMENT '角色描述' , `role_type` VARCHAR (50) COMMENT '角色类型(如 platform_admin, tenant_admin)' , `tenant_id` BIGINT COMMENT '租户ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`) ) ENGINE=InnoDB COMMENT= '角色表,定义租户内不同的角色和它们的基本信息,平台角色使用特定租户ID' ; -- 创建权限表 CREATE TABLE `ns_permission` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `tenant_id` BIGINT NOT NULL COMMENT '租户ID' , ` name ` VARCHAR (255) NOT NULL COMMENT '权限名称' , `description` TEXT COMMENT '权限描述' , `resource_type` VARCHAR (50) COMMENT '资源类型(如 button, menu, column)' , `resource_name` VARCHAR (255) COMMENT '资源名称' , ` action ` VARCHAR (50) COMMENT '允许的操作(如 read, write)' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`) ) ENGINE=InnoDB COMMENT= '权限表,定义系统内的权限和它们的作用范围' ; -- 创建组织机构表 CREATE TABLE `ns_org` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `tenant_id` BIGINT NOT NULL COMMENT '租户ID' , ` name ` VARCHAR (255) NOT NULL COMMENT '组织名称' , `description` TEXT COMMENT '组织描述' , `parent_id` BIGINT COMMENT '父组织ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`), FOREIGN KEY (`parent_id`) REFERENCES `ns_org` (`id`) ) ENGINE=InnoDB COMMENT= '组织机构表,用于管理租户内的组织结构,如部门或团队' ; -- 创建菜单表 CREATE TABLE `ns_menu` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `tenant_id` BIGINT NOT NULL COMMENT '租户ID' , `parent_id` BIGINT COMMENT '父菜单ID' , `title` VARCHAR (255) NOT NULL COMMENT '菜单标题' , `path` VARCHAR (255) COMMENT '菜单对应的路径' , `icon` VARCHAR (100) COMMENT '菜单项图标' , `sort_order` INT COMMENT '菜单排序' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`), FOREIGN KEY (`parent_id`) REFERENCES `ns_menu` (`id`) ) ENGINE=InnoDB COMMENT= '菜单表,存储系统菜单项,通常用于构建用户界面的导航系统' ; -- 创建套餐表 CREATE TABLE `ns_package` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `tenant_id` BIGINT NOT NULL COMMENT '租户ID' , ` name ` VARCHAR (255) NOT NULL COMMENT '套餐名称' , `description` TEXT COMMENT '套餐描述' , `price` DECIMAL (10, 2) COMMENT '价格' , `duration` INT COMMENT '持续时间(天)' , `user_limit` INT COMMENT '用户人数限制' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`tenant_id`) REFERENCES `ns_tenant` (`id`) ) ENGINE=InnoDB COMMENT= '套餐表,描述各种套餐的详细信息' ; -- 创建套餐权限表 CREATE TABLE `ns_package_permission` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `package_id` BIGINT NOT NULL COMMENT '套餐ID' , `permission_id` BIGINT NOT NULL COMMENT '权限ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`package_id`) REFERENCES `ns_package` (`id`), FOREIGN KEY (`permission_id`) REFERENCES `ns_permission` (`id`) ) ENGINE=InnoDB COMMENT= '套餐权限表,定义套餐与权限之间的关系,管理套餐所包含的权限' ; -- 创建角色套餐关系表 CREATE TABLE `ns_role_package` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY , `role_id` BIGINT NOT NULL COMMENT '角色ID' , `package_id` BIGINT NOT NULL COMMENT '套餐ID' , `sort_code` INT COMMENT '排序码' , `enabled` INT DEFAULT 1 COMMENT '状态 (0 禁用, 1 启用)' , `remark` TEXT COMMENT '备注' , `created_by` BIGINT COMMENT '创建人ID' , `modified_by` BIGINT COMMENT '修改人ID' , `delete_flag` BOOLEAN DEFAULT FALSE COMMENT '是否删除' , `created_date` DATETIME COMMENT '创建时间' , `modified_date` DATETIME COMMENT '修改时间' , FOREIGN KEY (`role_id`) REFERENCES `ns_role` (`id`), FOREIGN KEY (`package_id`) REFERENCES `ns_package` (`id`) ) ENGINE=InnoDB COMMENT= '角色套餐关系表,管理角色与套餐之间的关系' ; |