加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – 用于私家动静转达的单个mysql表

发布时间:2021-03-06 01:54:50 所属栏目:编程 来源:网络整理
导读:我正在实行在网站上建设一个用于私家动静转达的表.我建设了下表,我以为这是有用的,但我真的很谢谢一些反馈. CREATE TABLE IF NOT EXISTS `pm` ( `id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL,`to` int(11) NOT NULL,`date` timestamp N

我正在实行在网站上建设一个用于私家动静转达的表.我建设了下表,我以为这是有用的,但我真的很谢谢一些反馈.

CREATE TABLE IF NOT EXISTS `pm` (
  `id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL,`to` int(11) NOT NULL,`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,`subject` varchar(255) DEFAULT NULL,`message` text NOT NULL,`read` tinyint(1) NOT NULL DEFAULT '0',`deleted` tinyint(1) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
  FOREIGN KEY (user_id) REFERENCES User(user_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

我有2列确定动静的状态:读取和删除

假如读取= 1,则吸取器已读取该动静.假如删除= 1,则发件人或收件人从已发送或已收到的收件箱中删除邮件.假如删除= 2,则两个用户都删除了该动静,因此从数据库表中删除该行.

最佳谜底 一些评述:

Charset = latin1会让一些人感想憎恶,我提议行使charset = utf8.

我提议不只在user_id长举办外键搜查,并且还要搜查.

另外,我还会在日期上添加索引,由于您将在该字段长举办大量排序.

您必要在两个字段中拆分已删除,不然您将不知道哪个用户已删除该邮件. (deleted_by_user,deleted_by_recipient)

请留意,date是一个保存字,您必要在查询中将其变动为message_date或`backtick`.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读