达梦数据库学习笔记@1
目录
- 达梦数据库学习笔记
- 一、表空间管理
- (一)默认表空间
- (二)相关数据字典
- (三)表空间操作
- (四)临时表空间管理
- 二、重做日志管理
- (一)系统视图
- (二)日志操作
- 三、归档管理
- (一)开启归档
- (二)其他操作
- 四、用户管理
- (一)相关视图
- (二)三|四权分立
- (三)口令策略
- (四)身份验证模式
- (五)用户管理示例
- (六)用户资源限制
- 五、权限管理
- (一)授权和撤销
- (二)权限相关系统表
- (三)查看权限
- 六、角色管理
- (一)角色概念
- (二)预定角色
- (三)角色操作
- 七、模式管理
- (一)模式概念
- (二)模式和用户关系
- (三)模式操作
- 八、表管理
- (一)创建表
- (二)表字段操作
- (三)移动表
- (四)表相关视图
- 九、约束管理
- (一)约束类型
- (二)约束操作
- (三)约束系统视图
- 十、索引管理
- (一)索引操作
- (二)统计信息收集
- 十一、视图管理
- (一)视图概念
- (二)视图操作
- 十二、数据库备份恢复
- (一)备份恢复概念
- (二)备份类型
- (三)备份操作
- (四)DMRMAN备份
- (五)逻辑备份
- 十三、作业系统
- (一)创建备份作业
- 十四、DM8开发
- (一)JDBC连接数据库
- (二)ODBC连接数据库
达梦数据库学习笔记
一、表空间管理
(一)默认表空间
- SYSTEM:存储数据字典、表、字段、视图等对象的定义权限等信息。
- ROLL:存储DML操作对应的undo日志信息。
- MAIN:用户默认表空间,用户未指定时使用。
- TEMP:存储系统运行产生的临时数据,如排序数据。
- HMAIN:列存储表空间。
(二)相关数据字典
- dba_tablespaces:查询数据库表空间相关信息。
- dba_data_files:查询数据库数据文件信息。
- v$tablespace:查询表空间信息。
- v$datafile:查询数据文件相关信息。
- dba_free_space:查询数据库空闲的数据文件信息。
(三)表空间操作
- 创建:
CREATE TABLESPACE tbs_its DATAFILE 'tbs_its01.dbf' SIZE 128;
,未指定路径时按参数存放到指定路径。 - 脱机:
ALTER TABLESPACE tbs_its OFFLINE;
- 重命名:
ALTER TABLESPACE tbs_its RENAME TO tbs1;
- 删除:
DROP TABLESPACE tbs1;
- 修改
- 添加数据文件:
ALTER TABLESPACE tbs_its ADD DATAFILE 'tbs_its02.dbf' SIZE 128 MAXSIZE 1024;
- 修改属性:
ALTER TABLESPACE tbs_its DATAFILE 'tbs_its02.dbf' AUTOEXTEND ON NEXT 2 MAXSIZE 1024;
- 修改大小:
ALTER TABLESPACE tbs_its RESIZE DATAFILE 'tbs_its02.dbf' TO 256;
- 添加数据文件:
- 数据文件迁移
- 先脱机:
ALTER TABLESPACE OFFLINE;
- 重命名:
ALTER TABLESPACE tbs_its RENAME DATAFILE 'tbs_its02.dbf' TO '/tmp/tbs_its02.dbf';
- 再联机:
ALTER TABLESPACE ONLINE;
- 先脱机:
(四)临时表空间管理
- 收缩方法:重启数据库,自动重建临时表空间;使用
SP_TRUNC_TS_FILE
方法。
二、重做日志管理
(一)系统视图
- v$rlogfile:显示日志文件具体信息,如文件号、路径、状态、大小等。
- v$rlog:显示日志总体信息,包括事务号LSN、归档日志、检查点执行情况等。
(二)日志操作
- 修改大小:
alter database RESIZE LOGFILE 'its01.log' to 300;
- 添加日志:
alter database ADD LOGFILE 'its03.log' SIZE 300;
- 修改路径
- 先挂载:
ALTER DATABASE MOUNT;
- 重命名:
ALTER DATABASE RENAME LOGFILE 'its01.log' TO '/tmp/its01.log';
- 再打开:
alter database open;
- 先挂载:
三、归档管理
(一)开启归档
- 手动开启
- 挂载数据库:
ALTER DATABASE MOUNT;
- 添加归档配置:
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=2048';
- 开启归档模式:
ALTER DATABASE ARCHIVELOG;
- 打开数据库:
ALTER DATABASE OPEN;
- 挂载数据库:
- 配置文件配置
- 在
dm.ini
中设置ARCH_INI = 1
。 - 在
dmarch.ini
中配置相关参数,如:
- 在
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 2048
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
(二)其他操作
- 查看状态:
SELECT arch_mode FROM v$database;
- 修改配置参数:
ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';
- 关闭归档
- 挂载数据库:
alter database mount;
- 关闭归档模式:
alter database noarchivelog;
- 删除归档配置:
alter database delete archivelog 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';
- 打开数据库:
alter database open;
- 挂载数据库:
- 切换归档
alter database archivelog current;
alter system switch logfile;
alter system archive log current;
- 删除归档
- 按时间删除:
SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE);
- 按LSN删除:
SF_ARCHIVELOG_DELETE_BEFORE_LSN();
- 按时间删除:
四、用户管理
(一)相关视图
- dba_users:用于查看用户相关信息。
(二)三|四权分立
- 系统管理员(SYSDBA):负责身份验证、资源限制、数据加密、访问控制、客体重用等。
- 系统审计员(SYSAUDITOR):承担审计工作。
- 系统安全员(SYSSSO):进行策略和标记管理。
- 对象管理员(SYSDBO):
负责访问对象控制。
(三)口令策略
- PWD_POLICY参数:是隐藏参数,只能通过函数或语句修改。
- 0:无限制,但总长度不超48字节。
- 1:禁止与用户名相同。
- 2:口令长度需大于等于
INI
参数PWD_MIN_LEN
设置的值。 - 4:至少包含一个大写字母。
- 8:至少包含一个数字。
- 16:至少包含一个标点符号(英文输入法下,除“和空格外的所有符号)。
select * from SYS."V$PARAMETER" where name like '%COMPATIBLE_MODE%';
select * from v$parameter t where t.name = 'PWD_POLICY';
alter SYSTEM set 'PWD_POLICY' = 16 BOTH;
(四)身份验证模式
- 数据库认证模式:使用创建用户时设置的密码登录。
- 基于操作系统认证模式
- 开启相关参数:
ENABLE_LOCAL_OSAUTH = 1
开启本地操作系统认证;ENABLE_REMOTE_OSAUTH = 1
开启远程操作系统认证;ENABLE_ENCRYPT = 1
表示使用ssl安全加密(静态参数,需重启数据库)。 - 操作步骤:先添加系统用户并加入指定组;在数据库中创建同名用户;登录数据库。
- 开启相关参数:
(五)用户管理示例
- 创建用户:
CREATE USER FANGYU IDENTIFIED BY 123456 DEFAULT TABLESPACE FYU_ITS DEFAULT INDEX TABLESPACE FYU_ITS;
- 锁定/解锁用户:
ALTER USER FANGYU ACCOUNT LOCK;
(锁定);ALTER USER FANGYU ACCOUNT UNLOCK;
(解锁)。 - 修改默认表空间:
ALTER USER FANGYU DEFAULT TABLESPACE MAIN;
- 修改密码:
ALTER USER FANGYU IDEDNTIFIED BY 01234;
- 删除用户:
DROP USER FANGYU
(若用户有创建对象则无法删除);DROP USER FANGYU CASCADE;
(强制删除)。
(六)用户资源限制
- 相关视图:
dba_profiles
可定义策略。 - 设置方式
- LIMIT语句:
alter user fyu limit FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
- PROFILE语句:
CREATE PROFILE P1 LIMIT FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
;ALTER USER FYU PROFILE P1;
- LIMIT语句:
五、权限管理
(一)授权和撤销
- 授权:
GRANT 权限 TO username [WITH ADMIN OPTION]
- 回收:
REVOKE 权限 FROM username
(二)权限相关系统表
- DBA_SYS_PRIVS:系统权限。
- DBA_TAB_PRIVS:对象权限。
- DBA_ROLE_PRIVS:角色。
- DBA_COL_PRIVS:列权限。
(三)查看权限
- 查看当前用户权限:
select * from session_privs;
六、角色管理
(一)角色概念
- 角色是一组权限的集合。
(二)预定角色
- 管理类:如
DBA
、RESOURCE
、PUBLIC
等,各有不同权限。 - 审计类:负责审计相关权限。
- 安全类:进行标记管理相关权限。
(三)角色操作
- 创建角色:
CREATE ROLE role_name;
- 删除角色:
DROP ROLE role_name;
- 禁用角色:
SP_SET_ROLE('role_name',0)
七、模式管理
(一)模式概念
- 模式是特定的对象集合,类似MySQL中的database,默认创建用户时会创建同名模式。
(二)模式和用户关系
- 一个用户可拥有多个模式,一个模式仅属于一个用户。
(三)模式操作
- 查看模式:
SELECT * FROM sysobjects WHERE tyepe$='SCH';
- 查看模式和用户对应关系:
selecta.id scheid ,a.name schename,b.id userid ,b.name username
fromSYS.SYSOBJECTS a,SYS.SYSOBJECTS b
wherea."TYPE$" = 'SCH'and a.pid = b.id;
- 创建模式:
CREATE SCHEMA s1 AUTHORIZATION FYU;
- 查看当前模式和用户:
SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA');
;SELECT SYS_CONTEXT('USERENV','CURRENT_USER');
- 切换模式:
SET SCHEMA S2;
- 删除模式:
drop schema s1;
八、表管理
(一)创建表
- 普通方式:
CREATE TABLE T1(id INT, name VARCHAR(12));
- 基于某个表创建:
CREATE TABLE T2 LIKE T1;
(DM中会复制数据,与MySQL不同) - CREATE TABLE AS SELECT:
CREATE TABLE T3 AS SELECT * FROM T1;
(二)表字段操作
- 添加字段:
ALTER TABLE T1 ADD COLUMN sex char(1);
- 删除字段:
ALTER TABLE T1 DROP COLUMN sex ;
- 修改字段:
ALTER TABLE T1 MODIFY sex char(10);
(三)移动表
- 移动到指定表空间:
ALTER TABLE T1 MOVE TABLESPACE MAIN;
(四)表相关视图
- dba_tables:查看表相关信息。
- dba_tab_column:查看表字段相关信息。
九、约束管理
(一)约束类型
- NOT NULL:非空约束。
- UNIQUE:唯一约束。
- PRIMARY KEY:主键约束(唯一约束 + 非空约束)。
- FOREIGN KEY:外键约束。
- CHECK:检验约束。
(二)约束操作
- 添加约束:分别使用不同语句添加各类约束。
- 禁用约束:
ALTER TABLE T1 DISABLE CONSTRAINT idx_uniq_id;
- 开启约束:
ALTER TABLE T1 ENABLE CONSTRAINT idx_uniq_id;
- 删除约束:
ALTER TABLE T1 DROP CONSTRAINT idx_uniq_id;
(三)约束系统视图
- dba_constraints:查看约束相关信息。
- dba_cons_columns:查看约束涉及的列相关信息。
十、索引管理
(一)索引操作
- 创建索引:
CREATE INDEX idx_id ON i1(id);
- 删除索引:
DROP INDEX idx_id;
- 监控索引:
ALTER INDEX idx_name MONITORING USAGE;
,可通过V$OBJECT_USAGE
视图查看使用情况。 - 重建索引:
ALTER INDEX idx_name rebuild;
(离线重建);ALTER INDEX idx_name rebuild online;
(在线重建)。
(二)统计信息收集
- 收集:
dbms_stats.gather_table_stats('SYSDBA','I1');
- 查看:
dbms_stats.table_stats_show('SYSDBA','I1');
十一、视图管理
(一)视图概念
- 由SQL语句组成的表,不存储真实数据,只存储查询语句。
(二)视图操作
- 创建视图:
CREATE VIEW v1 AS SELECT * FROM T1;
- 查询视图:
SELECT * FROM V1;
十二、数据库备份恢复
(一)备份恢复概念
- 备份:从数据库文件拷贝有效数据页到备份集。
- 还原:将有效数据页写入目标数据文件。
- 恢复:通过归档日志恢复到备份结束时状态,或指定时间、LSN位置。
(二)备份类型
- 逻辑备份:使用
dexp
工具导出数据,关注数据内容。 - 物理备份:扫描数据文件,拷贝已分配使用的数据页。
- 联机备份:数据库运行时备份。
- 脱机备份:数据库关闭时备份,
dmrman
备份需数据库关闭。
(三)备份操作
- 联机备份:
BACKUP DATABASE BACKUPSET 'bak_db';
,可带多种参数。 - 不同备份示例:完全备份、增量备份、表空间备份、表备份、归档备份等都有相应语句和参数。
(四)DMRMAN备份
- 备份数据库:完全备份、增量备份、归档备份各有对应语句。
- 备份集校验:
SELECT SF_BAKSET_CHECK('DISK','/dmbak/full_db');
- 删除备份集:
SELECT SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0);
(五)逻辑备份
- dexp参数及示例:众多参数控制导出行为,有全库、用户、模式、表等导出示例。
- dimp还原:
dimp USERID=SYSDBA/fangyu421 FILE=/dmbak/full.dmp LOG=full.log FULL=Y DIRECTORY=/dmbak/dimp/
十三、作业系统
(一)创建备份作业
- 可进行全量备份和增量备份作业创建,具体操作涉及相关界面设置。
十四、DM8开发
(一)JDBC连接数据库
- JDBC接口编程:是Java与数据库的接口规范,DM JDBC驱动程序支持基本SQL功能。
- JDBC连接池:负责管理数据库连接,常见连接池有C3P0、Proxool等多种。
- 连接基础参数:
jdbc.driver=dm.jdbc.driver.DmDriver
等。
(二)ODBC连接数据库
- ODBC概念:为异构数据库访问提供统一接口。
- DM ODBC 3.0:遵照规范设计开发,可直接调用接口函数或通过可视化工具访问数据库。
- 配置与测试:配置
/etc/odbcinst.ini
和/etc/odbc.ini
文件,使用isql
测试连接。
相关文章:
达梦数据库学习笔记@1
目录 达梦数据库学习笔记一、表空间管理(一)默认表空间(二)相关数据字典(三)表空间操作(四)临时表空间管理 二、重做日志管理(一)系统视图(二&…...

图像处理篇---图像处理中常见参数
文章目录 前言一、分贝(dB)的原理1.公式 二、峰值信噪比(PSNR, Peak Signal-to-Noise Ratio)1.用途2.公式3.示例 三、信噪比(SNR, Signal-to-Noise Ratio)1.用途2.公式3.示例 四、动态范围(Dyna…...

AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践
前言 自2022年末ChatGPT的问世,大语言模型(LLM)技术引发全球关注。在大模型技术落地的最佳实践中,智能体(Agent)架构显现出巨大潜力,成为业界的普遍共识,各大公司也纷纷启动Agent技…...
50周学习go语言:第1周 环境搭建
以下是为零基础学习者准备的详细第1周教程,包含环境搭建、工具配置和首个Go程序的完整操作指南: 一、Go语言环境安装(Windows/macOS/Linux通用) 1. 下载安装包 官网地址:https://go.dev/dl//根据系统选择对应版本&am…...

4. MySQL 逻辑架构说明
4. MySQL 逻辑架构说明 文章目录 4. MySQL 逻辑架构说明1. 逻辑架构剖析1.1 服务器处理客户端请求1.2 Connectors(连接器)1.3 第1层:连接层1.4 第2层:服务层1.5 第3层:引擎层1.6 存储层 2. SQL执行流程2.1 MySQL 中的 SQL 执行流程 2.2 MySQL…...
《AI与NLP:开启元宇宙社交互动新纪元》
在科技飞速发展的当下,元宇宙正从概念逐步走向现实,成为人们关注的焦点。而在元宇宙诸多令人瞩目的特性中,社交互动体验是其核心魅力之一。人工智能(AI)与自然语言处理(NLP)技术的迅猛发展&…...

面对STM32的庞大体系,如何避免迷失在细节中?
我第一次接触STM32时,我以为抱着开发板就是拥抱未来,实际上一开机就喜提四大耳光,看到卖家演示的MP3播放、TFT彩屏、网口通信好炫酷,忍不住买回来掌握这些神技,到最后发现最实用的还是开发板的关机键和复位键。 看视频…...
ragflow-RAPTOR到底是什么?请通俗的解释!
RAPTOR有两种不同的含义,具体取决于上下文: RAPTOR作为一种信息检索技术 RAPTOR是一种基于树状结构的信息检索系统,全称为“Recursive Abstractive Processing for Tree-Organized Retrieval”(递归抽象处理树组织检索)…...

Linux系统移植之Uboot启动流程
Linux系统移植之Uboot启动流程 一,Uboot启动流程1.Uboot的两阶段1.1.第一阶段1.11.硬件初始化1.12.复制 U-Boot 到 RAM1.13.跳转到第二阶段 1.2.第二阶段1.21.C 语言环境初始化1.22. 硬件设备初始化1.23. 加载环境变量1.24. 显示启动信息1.25. 等待用户输入…...

【Open X-Embodiment】简单数据下载与预处理
文章目录 1. RLDS Dataset2. 处理成numpy格式3. 存储桶 1. RLDS Dataset 从 Octo 里面找到数据下载的代码 rlds_dataset_mod github 按照官网代码配置环境后,修改 prepare_open_x.sh,相当于只用 gsutil 下载数据: DOWNLOAD_DIR/mnt/data…...

【第四节】C++设计模式(创建型模式)-Builder(建造者)模式
目录 引言 一、Builder 模式概述 二、Builder 模式举例 三、Builder 模式的结构 四、Builder 模式的实现 五、Builder 模式的优缺点 六、总结 引言 Builder 模式是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。通过一步步构建对象,…...

排查JVM的一些命令
查看JVM相关信息的方法 环境: Win10, jdk17 查看端口的Pid netstat -ano | findstr <端口号>列出当前运行的JVM进程 ## 用于输出JVM中运行的进程状态信息。通过jps,可以快速获取Java进程的PID(进程标识符), …...

uni-app(位置1)
文章目录 一、获取当前的地理位置、速度 uni.getLocation(OBJECT)二、打开地图选择位置 uni.chooseLocation(OBJECT)三、使用应用内置地图查看位置。uni.openLocation(OBJECT) 一、获取当前的地理位置、速度 uni.getLocation(OBJECT) App平台 manifest中配置好自己的地图厂商k…...

某手sig3-ios算法 Chomper黑盒调用
Chomper-iOS界的Unidbg 最近在学习中发现一个Chomper框架,Chomper 是一个模拟执行iOS可执行文件的框架,类似于安卓端大名鼎鼎的Unidbg。 这篇文章使用Chomper模拟执行某手的sig3算法,初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的…...

登录-05.JWT令牌-介绍
一.JWT令牌 JWT令牌是一种简洁的、自包含的格式,用于在通讯双方之间以json数据格式安全的传输数据。说白了,JWT令牌就是将json格式的数据进行封装,从而实现安全传输。 所谓简洁,就是指JWT令牌就是一个简单的字符串。 所谓自包含…...

Mac下Python版本管理,适用于pyenv不起作用的情况
前言 声明:之前也在网上看到过可以使用pyenv来管理python版本,但由于作者的python安装路径实在是繁杂不堪,因此安装完成pyenv体验下来没有任何用处,但偶然发现vscode似乎可以看到各个python版本,因此写下这篇博客记录…...

Ubuntu 服务器Llama Factory 搭建DeepSeek-R1微调训练环境
1.首先了解一下什么是LLM微调 LLM 微调指的是在已经预训练好的大型语言模型基础上,使用特定的任务数据或领域数据,通过进一步的训练来调整模型的参数,使其在特定任务或领域上能够表现得更好。简单来说,就是对一个已经具备了丰富语…...
【redis】redis内存管理,过期策略与淘汰策略
一:Redis 的过期删除策略及处理流程如下: 1. 过期删除策略 Redis 通过以下两种策略删除过期键: 1.1 惰性删除 触发时机:当客户端访问某个键时,Redis 会检查该键是否过期。执行流程: 客户端请求访问键。…...

RabbitMQ学习—day6—死信队列与延迟队列
目录 死信队列 1. 死信的概念 2. 死信的来源 实战演练 1. 消息TTL过期 2. 队列达到最大长度 3. 消息被拒绝 延迟队列 概念 使用场景 TTL的两种设置 死信队列 1. 死信的概念 1.1 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的…...

seacmsv9联合注入数据以及绕过 ORDERBY
seacmsv9联合注入数据 php源码 <?php session_start(); require_once("../../include/common.php"); $id (isset($gid) && is_numeric($gid)) ? $gid : 0; $page (isset($page) && is_numeric($page)) ? $page : 1; $type (isset($type) …...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...