設計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表主要是用戶對帖子的評論相關信息。
實際場景: