背景: 這兩天看了重溫了下設計模式和數據結構,又補了下基礎知識,然后就失眠了一整夜,不知為啥就想到級聯及偽刪數據這個問題。 由於級聯刪除是幾乎人人都會遇到的問題,但方案卻有限卻不美好,所以歡迎大伙集思文益,以下內容歡迎大伙一起討論。 級聯刪除的方式: 方式 :數據庫設定級聯: 常規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:增加備份表(刪除記錄表) 每張表都設計一張對應的備份表,用於存儲刪除的數據。表結構可以根據實際需要在原表基礎上增加刪除時間、刪除操作者之類的字段。這樣在刪除數據時,對於原表,相當於是物理刪除,然后再備份表中插入新的記錄。注意:映射關系表也需要備份表。 優點:跟物理刪除類似,不會有數據 ...