1. 程式人生 > 實用技巧 >使用者簽到表的設計思路與資料庫實現

使用者簽到表的設計思路與資料庫實現

簽到做為,一個促進使用者粘性的手段已經很成熟了。

這裡說下,個人的一些設計表思路
新增使用者配置表。主鍵關聯User表,即可。
 CREATE TABLE `cft_user_signin` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `user_id` int(11) DEFAULT NULL COMMENT '使用者id',//關聯主使用者表。想當於是主鍵表的外來鍵關係表。
  `days` int(10) DEFAULT NULL COMMENT '連續簽到天數',//判斷使用者是否連續簽到
  `last_signin_time` int(10) DEFAULT NULL COMMENT '最後一次簽到時間',//最後一次簽到時間
  `signin_nums` int(2) DEFAULT '0' COMMENT '可補籤次數',//使用者有沒有補籤的機會。
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='使用者簽到個人配置表';

CREATE TABLE `cft_user_signin_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',//自增id
  `user_id` int(11) DEFAULT NULL COMMENT '使用者id',//使用者id,做為獲取使用者簽到情況的表
  `signin_content` text COMMENT '簽到獎勵內容',//使用者已經獲得的內容,或者其他序列化的引數。
  `add_time` int(10) DEFAULT NULL COMMENT '簽到時間',//使用者正常簽到的時間,補籤時,用pacht_time,替換add_time,
  `signintype` enum('簽到','補籤') DEFAULT '簽到' COMMENT '簽到型別1=簽到2=補籤',//簽到記錄型別
  `patch_time` int(10) DEFAULT NULL COMMENT '補籤的時間',//補籤遺漏的時間。當前時間的前一天,或者好幾天。
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='使用者簽到日誌記錄';
//以上這些,僅做記錄。如有幫助,那是最好。