【发布时间】:2011-10-08 18:24:37
【问题描述】:
我正在尝试为网站上的私人消息创建一个表。我创建了下表,我认为它是有效的,但我非常感谢一些反馈。
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 列确定消息的状态:read 和 deleted
如果read = 1,则消息已被接收方读取。如果deleted = 1,则发送者或接收者从已发送或已接收的收件箱中删除了该消息。如果deleted = 2 两个用户都删除了该消息,则从数据库表中删除该行。
【问题讨论】:
-
用这么少的信息很难评估这张表的有效性。 MySQL 用于保存数据。该表保存数据。这张表是否足以用于消息传递系统?是的,它为消息传递系统的核心必需品提供了空间。除此之外,如果不知道您打算如何使用它、引用它、如何构建应用程序、将使用什么设计方法等,就无法判断此实现的实用性。
标签: php mysql database database-design