设计4个表,分别时User,Message,News,Commen。其中的一些表可以有一些必要的冗余。
News表
头条网站中,news就包含网站中的每一个帖子,每个帖子都有相同点,提取相同点,抽象成字段。这个表是整个数据库中最重要的部分:
DROP TABLE IF EXISTS `news`; CREATE TABLE `news`( #资讯自己的唯一id `id` int(11) unsigned NOT NULL AUTO_INCREMENT, #资讯的标题 `title` varchar(128) NOT NULL DEFAULT '', #资讯的链接 `link` varchar(256) NOT NULL DEFAULT '', #资讯的首图 `image` varchar(256) NOT NULL DEFAULT '', #资讯的点赞数 `like_count` int NOT NULL, #评论数,冗余字段 `comment_count` int NOT NULL, #创建时间 `created_date` datetime NOT NULL, #资讯发布者的唯一id `user_id` int(11) NOT NULL, PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如下:上述字段可以对应到网页的实体:
User表
user表示用户,表格信息如下:
//若数据库中存在user表,则删除这个表
DROP TABLE IF EXISTS `user`;
//创建user表
CREATE TABLE `user` (
#用户所代表的唯一id
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
#用户名
`name` varchar(64) NOT NULL DEFAULT ' ',
#密码
`password` varchar(128) NOT NULL DEFAULT ' ',
#salt是加强密码的额外的字段
`salt` varchar(32) NOT NULL DEFAULT ' ',
#头像的url链接
`head_url` varchar(256) NOT NULL DEFAULT ' ',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如下形式是用户信息表:
Massage表
massage表包含系统的一些消息,用户之间的消息。
实际场景如下:
Comment表
Comment表主要是用户对帖子的评论相关信息。
实际场景: