对于数据库的表设计,直接使用廖雪峰的教程当中的数据表
我稍作更改摘抄过来:
主要更改:
id我个人比较喜欢用自增的int
创建时间数据类型改为datetime
用户表增加字段status,表示此账号是否可用
1 -- schema.sql 2 3 drop database if exists blog; 4 5 create database blog; 6 7 use blog; 8 9 grant all on blog.* to 'jakey'@'localhost' identified by '123';10 11 create table users (12 `id` mediumint not null auto_increment,13 `email` varchar(50) not null,14 `password` varchar(50) not null,15 `admin` bool not null,16 `status` bool not null default 1,17 `name` varchar(50) not null,18 `image` varchar(500) not null,19 `created_at` datetime not null,20 unique key `idx_email` (`email`),21 key `idx_created_at` (`created_at`),22 primary key (`id`)23 ) engine=innodb default charset=utf8;24 25 create table blogs (26 `id` mediumint not null auto_increment,27 `user_id` int not null,28 `user_name` varchar(50) not null,29 `user_image` varchar(500) not null,30 `name` varchar(50) not null,31 `summary` varchar(200) not null,32 `content` mediumtext not null,33 `created_at` datetime not null,34 key `idx_created_at` (`created_at`),35 primary key (`id`)36 ) engine=innodb default charset=utf8;37 38 create table comments (39 `id` mediumint not null auto_increment,40 `blog_id` int not null,41 `user_id` int not null,42 `user_name` varchar(50) not null,43 `user_image` varchar(500) not null,44 `content` mediumtext not null,45 `created_at` datetime not null,46 key `idx_created_at` (`created_at`),47 primary key (`id`)48 ) engine=innodb default charset=utf8;49 50 insert into users 51 (52 `email`,53 `password`,54 `admin`,55 `status`,56 `name`,57 `image`,58 `created_at`59 ) 60 values 61 (62 'Jakey.Chen@example.com',63 'MTIz',64 '1',65 '1',66 'Jakey.Chen',67 'None',68 now()69 );
主要有三个表:用户表,博文表,和评论表
在终端可进行初始化:
$ mysql -u root -p < schema.sql
确认是否初始化完成:
jakeychen@JakeyPC:~/Desktop$ mysql -u jakey -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 48Server version: 5.6.19-0ubuntu0.14.04.4 (Ubuntu)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use blog;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+----------------+| Tables_in_blog |+----------------+| blogs || comments || users |+----------------+3 rows in set (0.00 sec)