Mysql数据库,项目需求需要数据还原的数据表结构构思方案
生活随笔
收集整理的這篇文章主要介紹了
Mysql数据库,项目需求需要数据还原的数据表结构构思方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自己構思的一些,Mysql數據庫項目中常用的數據表結構
版本:mysql5.5版本及以上
一、特定數據的表構思方法【特定的數據,同時需要記錄操作的】
以用戶表為例,用戶修改頭像、昵稱等操作為記錄需求的構思。
主表:
附屬表:
1.用戶數據修改記錄表
2.用戶操作數據記錄表
DROP TABLE IF EXISTS `user_log`; CREATE TABLE `user_log` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL COMMENT '日志備注',`url` varchar(255) DEFAULT NULL COMMENT '操作路徑',`ip` varchar(255) DEFAULT NULL COMMENT 'ip地址',`info` varchar(255) DEFAULT NULL COMMENT '請求結果:成果或者失敗',`date` int(11) DEFAULT NULL COMMENT '請求的日期',`uid` int(11) DEFAULT NULL COMMENT '用戶id',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶操作數據記錄表';注:操作數據記錄表可以合用戶數據修改記錄表合并,如下結構。
DROP TABLE IF EXISTS `user_do`; CREATE TABLE `user_do` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL COMMENT '操作名稱',`type` tinyint(2) NOT NULL DEFAULT '1' COMMENT '操作類型 1頭像 2昵稱 3手機 4性別 5.登錄 6.退出 7.發表文章',`old_value` varchar(255) DEFAULT NULL COMMENT '舊值',`now_value` varchar(255) DEFAULT NULL COMMENT '修改以后的值',`created_at` int(11) DEFAULT NULL COMMENT '操作時間',`uid` int(11) DEFAULT NULL COMMENT '用戶id',`ip` varchar(255) DEFAULT NULL COMMENT 'IP地址',`url` varchar(255) DEFAULT NULL COMMENT '操作路徑',`info` varchar(255) DEFAULT NULL COMMENT '操作結果:成功或者失敗以及其他',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶更新日志';使用說明:
1.查詢,通過uid進關聯,查詢時調用uid即可。
2.存儲,每個操作處寫上聯動增加,修改后即可存入參數。
結構適合做修改完成數據后又可以還原的功能需求。
二、通用表結構構思 【任何內容數據,同時需記錄操作的】
無參數合特定情況,只存儲特定數據類型,通過數據類型和關聯id進行查詢和修改的需求。
主表:
DROP TABLE IF EXISTS `data`; CREATE TABLE `data` (`data_id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL COMMENT '數據標識名稱',`value` text COMMENT '數據的內容值,json,xml,文本,數字等多種格式',`type` tinyint(2) NOT NULL DEFAULT '1' COMMENT '數據類型:1json 2xml 3文本 4數字 依此類推 結合后端邏輯進行數據的處理',`author_id` int(11) DEFAULT NULL COMMENT '關聯id作者id',`created_at` datetime DEFAULT NULL COMMENT '創建日期',`update_at` datetime DEFAULT NULL COMMENT '修改日期',PRIMARY KEY (`data_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;記錄表:
DROP TABLE IF EXISTS `datalog`; CREATE TABLE `datalog` (`id` int(11) NOT NULL AUTO_INCREMENT,`now_value` text COMMENT '數據標識名稱',`old_value` text COMMENT '數據的內容值,json,xml,文本,數字等多種格式',`type` tinyint(2) NOT NULL DEFAULT '1' COMMENT '數據類型:1json 2xml 3文本 4數字 依此類推 結合后端邏輯進行數據的處理',`data_id` int(11) DEFAULT NULL COMMENT '關聯id',`created_at` datetime DEFAULT NULL COMMENT '創建日期',`ip` varchar(255) DEFAULT NULL COMMENT 'ip地址',`url` varchar(255) DEFAULT NULL COMMENT '操作路徑' ) ENGINE=MyISAM DEFAULT CHARSET=utf8;使用說明:
1.適合需要把多種不同數據存在一張表的需求。
2.適合需要回源和復原操作功能的需求。
注:結合自己的實際需求選用,未必這個方案就適合你。
總結
以上是生活随笔為你收集整理的Mysql数据库,项目需求需要数据还原的数据表结构构思方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.3 编程基础之算术表达式与顺序执行
- 下一篇: 1.9 编程基础之顺序查找 10 找最大