精华内容
下载资源
问答
  • 在业务表设计中,删除数据一般建议不使用物理删除,而是使用逻辑删除,在逻辑删除时,就存在一个问题:如何保证表中字段唯一性 解决方案 删除标志可以不局限为true、false,比如使用0表示未删除,-1、-2、-3.........

    背景

    在业务表设计中,删除数据一般建议不使用物理删除,而是使用逻辑删除,在逻辑删除时,就存在一个问题:如何保证表中字段唯一性

    解决方案

    • 删除标志可以不局限为true、false,比如使用0表示未删除,-1、-2、-3.......表示已删除

    • 利用为null的字段不会和其他字段有组合索引的效果

    • 增加delete_time字段,同一时间内可能性几乎为0

    如果有更好的解决方案可以留言交流

    展开全文
  • 如果项目里有大量的数据想使用逻辑删除,就是假删除,我们会在数据库的表里放一个ds字段来区分是否删除。 设想删除数据时,我们统一用的dao的delete方法来删除,而delete方法中则使用setDs(true)来做逻辑...
  • 数据库系统实现

    2013-05-12 13:09:11
    书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分—存储管理器、查询处理器和事务管理器的实现技术。书中还对信息集成的最新技术,例如数据仓库、OLAP、数据挖掘、Mediator、数据...
  • 数据库唯一主键的实现主要是利用数据库中主键唯一约束的特性,一般来说唯一主键比较适用于“插入”时的幂等性,其能保证一张表中只能存在一条带该唯一主键的记录。 使用数据库唯一主键完成幂等性时需要注意的是,该...

    数据库唯一主键的实现主要是利用数据库中主键唯一约束的特性,一般来说唯一主键比较适用于“插入”时的幂等性,其能保证一张表中只能存在一条带该唯一主键的记录。

    使用数据库唯一主键完成幂等性时需要注意的是,该主键一般来说并不是使用数据库中自增主键,而是使用分布式 ID 充当主键,这样才能能保证在分布式环境下 ID 的全局唯一性。

    适用操作

    • 插入操作
    • 删除操作

    使用限制

    • 需要生成全局唯一主键 ID;

    主要流程

    主要流程如下:

    • 客户端执行创建请求,调用服务端接口。
    • 服务端执行业务逻辑,生成一个分布式 ID,将该 ID 充当待插入数据的主键,然 后执数据插入操作,运行对应的 SQL 语句。
    • 服务端将该条数据插入数据库中,如果插入成功则表示没有重复调用接口。如果抛出主键重复异常,则表示数据库中已经存在该条记录,返回错误信息到客户端。

     

    展开全文
  • 关于逻辑删除的思考

    2020-05-07 00:17:41
    数据库数据的逻辑删除 什么是逻辑删除 顾名思义就是非物理的删除,数据实质上仍存在但是不再被展示。 如何实现 通常添加一个is_deleted的标志位,True就隐藏,False就正常显示。 单标志位可能出现的问题 虽然is_...

    数据库数据的逻辑删除

    什么是逻辑删除

    顾名思义就是非物理的删除,数据实质上仍存在但是不再被展示。

    如何实现

    通常添加一个is_deleted的标志位,True就隐藏,False就正常显示。

    单标志位可能出现的问题

    虽然is_deleted=True后不再显示,但是某些unique字段可能因此被限制。例如:

    1 . 现在存在一个用户表, 其中email,phone,username都是unique的,但是因为is_deleted值为True之后代表这个用户被注销了。但是现在你无法使用相同的email或phone或username再次进行注册,这是不合理的。

    字段 is_unique is_primary_key
    id True True
    email True False
    username True False
    phone True False
    is_deleted False False

    解决方案:

    1. is_deleted 改为 delete_token, 当数据被逻辑删除时置一个随机串,和id, delete_token绑定联合唯一。
    2. is_deleted=True之后,将这个数据迁移到专门存放陈旧信息的数据库中,如果有后续有相同数据依旧会碰撞。
    展开全文
  • 数据库事务是指作为单个逻辑单元执行的一系列操作,要么完全执行,玩么完全地不执行。事务的四个特性(ACID):原子性、一致性、隔离性和持久性。 事务实现原理(网友答案,百度不好找):事务开始之后,事务所有的操作都...

    数据库事务是指作为单个逻辑单元执行的一系列操作,要么完全执行,玩么完全地不执行。事务的四个特性(ACID):原子性、一致性、隔离性和持久性。
    事务实现原理(网友答案,百度不好找):事务开始之后,事务所有的操作都陆续写到事务日志中。写到日志中的操作,一般有两种。一种是针对数据的操作,一种是针对任务的操作。针对数据的操作,例如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。有些操作是针对任务的,例如创建索引,这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。单取消这种事务时,系统会自动执行这种操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度,由系统自动计算出来的时间间隔。监测点周期地检查事务日志,如果在事务日志中,事务全部完成,那么检查点将事务日志中的事务提交到数据库中,并且在事务日志中做一个检查点提交标志。如果在事务日志中,事务没有完成,那么检查点将事务日志中的事务不提交到数据库中,并且在事务日志中做一个检查点未提交标志。

    展开全文
  • 数据库管理过程中,如何确保数据库存储数据的安全性是人们最为关注也最为担忧的问题。 数据库安全的主要威胁 就目前来看,对数据安全的威胁因素主要有以下几个方面: (1)人为因素:用户或管理员误删除...
  • 我们在一般的数据库操作中可能经常见到这种操作,表中有两列,分别为这条数据的创建时间和修改时间,那我们该如何处理呢?在添加数据的或者修改数据的时候 new Date吗?这样太low了。 两种处理方式: 一、数据库层面...
  • 如何用一条语句删除多张表数据,MySql适用,sqlite不可以。 按照正常逻辑是 delete * from tbl1 where id=2; delete * from tbl2 where id=2; delete * from tbl3 where id=2; 现在使用这样一条语句 ...
  • 存储系统实现-如何删除数据

    千次阅读 2013-06-02 16:52:36
    前一篇中简单的写了下关于索引的删除,这一篇中完整的介绍整个数据删除步骤。  1.根据ID查找索引数据(主要是获取具体数据地址,有点像数据库中的根据索引进行回表)  2.根据索引的数据偏移查找具体的空间ID(在...
  • 数据库资料

    2018-04-01 22:00:33
    SQL编程,实现功能强大的查询掌握创建索引、视图,快速访问数据库 掌握创建存储过程,实现复杂的业务规则理解触发器的原理,实现高级的约束目标了解设计数据库的步骤掌握如何绘制数据库的E-R图理解数据库的规范化-...
  • 来看看HttpServletRequest和HttpServletResponse这两个接口实现类对象的生命周期,是谁创建的,什么时候以及如何到达doGet和doPost方法的。 请求对象和响应对象的生命周期: 添加逻辑: 先完成html表单: <!...
  • 文章出处:http://www.c-sharpcorner.com/asp/Code/northwindLC.asp前言:这篇文章主要介绍如何在DataGrid控件中实现编辑、删除、分类以及分页操作。为了实现我们的意图,我们使用SqlServer2000自带的NorthWind...
  • 数据库基础

    2012-09-22 16:27:04
    §8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词获得本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称...
  • 逻辑数据独立性:数据逻辑结构的改变不影响应用程序(一般难以实现) 实例(Instance):特定时刻存储在数据库中的信息的集合 数据模型是一个概念工具的集合,用于描述数据结构、关系、语义、约束 数据库...
  • Java 数据库编程

    2008-10-29 19:37:14
    JDBC控件是Beehive1.0中... 本节中首先将通过一个简单的例子来演示如何通过继承JDBC控件来访问JDBC数据源,完成一个数据表的增加、删除、修改、查询等业务逻辑,随后将介绍如何使用JDBC控件访问JDBC数据源的更多技巧。
  • 1.8.3 典型数据库逻辑设计 24 1.8.4 典型数据库物理设计 24 1.9 逻辑模型约定 25 1.9.1 一对一关系 25 1.9.2 一对多关系 26 1.9.3 多对多关系 26 1.10 创建数据库 27 1.10.1 修改创建模板的脚本文件 27 1.10.2 创建...
  • Oracle数据库、SQL

    2014-04-14 23:40:17
    1.5数据库如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据-->database 1 1.9远程登录:telnet IP地址 1 1.10 TCP/IP通信协议 2 1.11数据库建连接必须提供以下信息 2 1.12一台机器...
  • 在emp中如何实现文件上传

    千次阅读 2009-04-12 23:16:00
    经常会有人问道emp怎么来实现文件上传,这里我做一个简单的介绍:emp文件上传的设计思想是:所有的文件上传都由平台进行处理,平台将上传的文件统一放在一个临时的文件夹下,然后再由开发人员根据具体的业务需求对...
  • 就像数据库里面的触发器一样,但是它的优点是,你可以通过java代码来实现你想要的功能,方便调试与实现。比如你想在生成销售订单的时候自动生成一个单据号,可以利用业务事件来处理。具体参考如下这个类:...
  • JDBC控件是Beehive1.0中提供的访问JDBC数据源的Java控件。...本节中首先将通过一个简单的例子来演示如何通过继承JDBC控件来访问JDBC数据源,完成一个数据表的增加、删除、修改、查询等业务逻辑,随后将介绍如何使用J

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 440
精华内容 176
关键字:

数据库如何实现逻辑删除