題目描述上述問題,避不開的就是數據存在兩份,比如說一份后臺正在編輯的文章,一份用戶正在瀏覽的文章。怎么能夠實現數據的修改量,數據占用的空間量最小。如果單獨看文章,比如文章表這一張表,問題也比較好處理,對數據做備份。比如當需要編輯文章時,給文章建立一個備份數據,后臺修改的都是備份數據,這樣不影響前臺用戶瀏覽,后臺修改好了后,點擊發布,備份數據覆蓋原始數據,同時刪除備份數據,有點Linux里bak文件的味道。增刪改皆如此。當然這個思路也可以反過來用,創捷備份數據,后臺直接修改原始數據,用戶瀏覽備份數據。這樣用戶瀏覽的邏輯就需特殊處理一下。這里單表,此種思路即可解決。但是如果是多表數據,比如文章有類別,娛樂文章,新聞文章等,當對文章類別編輯時,數據聯動如何處理。再多一點文章有一到多個標簽,比如是如片文章,花邊文章。三表聯動,都需要維護變更狀態。這種情況下,像剛剛那邊加備份數據的方式就會及其復雜。不知道壇子里的大神們有什么好的思路。題目來源及自己的思路樓主這里,之前做過一個兩表聯動的數據,有兩個角色有點類似文章和標簽。一篇文章有一到多個標簽。樓主設計了三張表,文章表,標簽表。文章<->標簽關系表,聯動的是標簽和文章<->標簽關系表,當對標簽做增刪改時,同時聯動關系表,后臺修改完畢統一發布。樓主對標簽和關系表都做了備份處理,當標簽修改時,增加標簽備份數據,同時聯動,關系表中反正該標簽數據,皆增加備份。刪除時,同修改。新增最簡單,只需要增加標簽備份,關系表中無數據處理。中間涉及對原始數據的增刪改,對備份數據的刪改。做了很大的工作量,深深感到被自己設計的方案坑到了。也還有其他思路。比如樓主思考過的,就是設計表的時候設計雙字段,就好比一個事物由正反兩方面,正的一邊是給別人看的,反的一面是自己看的。這樣的話在數據表里只有一條數據,一個id。維護起來很容易,缺陷是字段冗余。還有就是極其暴力的做法,兩張類似的表,和上面的方法的思想有點類似,同樣冗余。
1 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
經過實踐,推薦創建兩張相同的表吧,一張表里有標記狀態字段,同一在表與表直接同步變更吧。上面的兩種方法,在多張表數據關聯時,業務處理麻煩的很,很容易有bug。
- 1 回答
- 0 關注
- 534 瀏覽
添加回答
舉報
0/150
提交
取消