背景: 这两天看了重温了下设计模式和数据结构,又补了下基础知识,然后就失眠了一整夜,不知为啥就想到级联及伪删数据这个问题。 由于级联删除是几乎人人都会遇到的问题,但方案却有限却不美好,所以欢迎大伙集思文益,以下内容欢迎大伙一起讨论。 级联删除的方式: 方式 :数据库设定级联: 常规MSSQL MySql Oracle都对设定了主外键关系的表提供级联删除。 优点:数据准确 使用方便,数据库设计之初就 ...
2016-07-25 14:59 35 7708 推荐指数:
一. 应用场景 在大型分布式应用中,我们经常碰到在多数据库之间的数据同步问题,比如说一款游戏,在玩家注册后,可以马上登陆进入服务器,即数据在一个IDC更新,其它IDC立即可见。为了简化思路,我们这里称玩家注册的数据库(数据来源库)为中心库,同步目的地的数据库为分站库。 在分布式领域有个CAP ...
水平分片方案 唯一ID:分布式ID生成算法 snowflake 一般会将一张大表的唯一键作为 hash 的 key,比如我们想要水平拆分的是一张拥有3千万行数据的用户表,我们可以利用唯一的字段用户id作为拆分的依据, 这样就可以依据如下的方式,将用户表水平拆分成3张,下面是伪代码 ...
前一阵子写了1个项目,这个项目有ios和android2个版本,都使用了sqlite数据库。数据库内容也不是太复杂,但是我们在操作时没有利用数据库的级联删除等功能,导致代码复杂,现在分析一下。 比如系统需要2个表,表Person表示人的信息, 包含personID,personName, 表 ...
如何让两种表有代码层面上真正的关联 就必须使用外键 什么是外键? 让表与表有硬性层面上的关系 一对多(Foreign Key) foreign key 外键约束 1.在创建表的时候 必须先创建被关联表 2.插入数据的时候 也必须先插入被关联表的数据 #部门表id dep_name ...
3种高效的Tags标签系统数据库设计方案分享 需求背景 目前主流的博客系统、CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分。相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的映射表来增加系统的负载 ...
需求背景 目前主流的博客系统、CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分。相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的映射表来增加系统的负载和查询的效率。 数据库设计方案1 此方案分为2个表: 1.Tag表 ...
方案1:增加备份表(删除记录表) 每张表都设计一张对应的备份表,用于存储删除的数据。表结构可以根据实际需要在原表基础上增加删除时间、删除操作者之类的字段。这样在删除数据时,对于原表,相当于是物理删除,然后再备份表中插入新的记录。注意:映射关系表也需要备份表。 优点:跟物理删除类似,不会有数据 ...