需求:
1.使用者能夠發表部落格。
2.每個博文都有分類,分類無限極。
3.要求多使用者,即多個使用者可以使用這個系統。
分析:系統涉及文章,使用者,分類這幾個實體。
因此,文章用兩個外來鍵,分別關連是屬於哪個使用者,哪個分類。
create table `article` (
`id` integer(11) not null,
`title` varchar(20) collate utf8_general_ci default null,
`content` text collate utf8_general_ci,
`categoryid` integer(11) default null,
`createtime` timestamp default current_timestamp,
`userid` integer(11) default null,
primary key (`id`),
key `userid` (`userid`),
key `article_fk1` (`categoryid`),
constraint `article_fk1` foreign key (`categoryid`) references `category` (`id`),
constraint `article_fk` foreign key (`userid`) references `user` (`id`)
)engine=innodb
character set 'utf8' collate 'utf8_general_ci'
comment='innodb free: 4096 kb; (`categoryid`) refer `sclblog/category`(`id`); (`userid`) ';
上面是用ems sql manager生成的。
表分類的結構是:
create table `category` (
`id` integer(11) not null,
`name` varchar(20) collate utf8_general_ci default null,
`pid` integer(11) default null,
primary key (`id`)
)engine=innodb
character set 'utf8' collate 'utf8_general_ci'
comment='innodb free: 4096 kb';
這裡pid是指父id,是本表的id,如果pid是0表示是根分類。pid並沒有設定自關連的外來鍵,因為pid為0時,關沒有id為0的分類。
使用者表結構:
create table `user` (
`id` integer(11) not null auto_increment,
`username` varchar(20) collate utf8_general_ci default null,
`password` varchar(20) collate utf8_general_ci default null,
primary key (`id`)
)engine=innodb
auto_increment=1 character set 'utf8' collate 'utf8_general_ci'
comment='innodb free: 4096 kb';
比較簡單,姑且先設定這幾個簡單的字段吧,以後看需求需要再加。
構建自己的 LINUX 系統(一)
實驗目標 基於tiny core構建一款迷你的 linux 發行版系統。技能要點 準備工具 乙個 linux 開發環境 如 ubuntu debian makefile 在內的常用開發工具 虛擬機器 qemu 或 virtualbox 都可以 syslinux utils debian ubuntu...
儲存系統實現 構建自己的儲存系統 一
一直在斷斷續續的看lucene原始碼,怎麼也理不清其中千絲萬縷的聯絡,遂想自己邊寫邊理解。在寫的過程中更加理解索引的意義,以及在開發過程中如何利用索引加快檢索,如何利用跳躍表來實現快速查詢。如何利用快取來實現減少磁碟io的開銷。這裡先從整個流程說起,這裡簡單的模擬了一下資料儲存和查詢的過程。在寫這個...
如何構建高可用的系統(一) Overview
在聊如何構建高可用系統之前,我們需要對 可用 下乙個定義。業界常用sla service level agreement 來描述乙個系統對外部系統承諾的可用性,sla包含很多資訊 服務內容 故障恢復時間 可用性等 在這裡我們籠統的用 n個9 來指代,比如4個9指的是99.99 的可用性 5個9指的是...