構建個人部落格系統一 構建資料庫

2021-04-23 15:22:21 字數 1772 閱讀 3231

需求:

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指的是...