首先使用数据库管理员的账户登录plsqldev,并选择SYSDBA进行登录,在登录情况下打开命令窗口进行操作进行创建一个用户
登录plsqldev后,在里面新建一个命令窗口,使用SQL语句进行数据库的创建
一、创建用户
首先创建一个普通用户作为我们登录Oracle数据库的账号密码,不能都用数据库管理员的权限进行登录,权限过大防止误操作可能带来的巨大损失
使用如下SQL语句:
create user 账户名 identified by 密码;
以及使用如下SQL语句进一步修改上方所创建用户的权限:
grant connect,resource to 账户名;
二、创建account_table
账户表
用上方创建的用户名和密码重新进行登录,根据对BBS论坛相关的需求分析,将在数据库中共建三张表:
1. account_table
2. message_table
3. revert_table
account_table
作为存储论坛所有账号信息的表,共建立如下5个字段:
1. account_account
- 用户数字账号
- 主键
- 由数据库队列直接给予,保证不重复
- 数字类型
2. account_name
- 用户账号个性名字
- 字符类型
3. account_pass
- 用户账号密码
- 字符类型
4. account_limit
- 用户账号权限识别码,0为用户,1为管理员
- 数字类型
5. account_date
- 用户账号创建日期
- date类型
SQL实现代码:
create table account_table(
account_account number(30,0) primary key not null,
account_name varchar2(30) unique not null,
account_pass varchar2(30) not null,
account_limit number(1,0) default 0,
account_date date default sysdate
);
三、创建message_table
主题帖表
message_table
作为存储论坛所有主题帖信息的表,共建如下5个字段:
1. message_account
- 主题帖发帖人数字账号
- 对应account_table表的外键
- 数字类型
2. message_id
- 主题帖的id
- 主键
- 由数据库队列直接给予,保证不重复
- 数字类型
3. message_title
- 主题帖名称
- 字符类型
4. message_content
- 主题的内容
- 字符类型
5. message_data
- 主题帖的发帖日期
- 由系统直接给予
- date类型
SQL实现代码:
create table message_table(
message_account number(30,0) not null,
message_id number(30,0) primary key not null,
message_title varchar2(30) not null,
message_content varchar2(300) not null,
message_data date default sysdate,
constraint fk_message_account_account foreign key(message_account) references account_table(account_account)
);
四、创建revert_table
回复贴表
revert_table
作为存储论坛所有回复帖信息的表,共建如下5个字段:
1. revert_account
- 回复贴的发帖人数字账号
- 设立对应account表的外键
- 数字类型
2. revert_messageid
- 所回复的主题帖的id
- 设立对应message表的外键
- 数字类型
3. revert_id
- 回复贴的id主键
- 由数据库队列直接给予,保证不重复
- 数字类型
4. revert_content
- 回复贴的内容
- 字符类型
5. revert_data
- 回复贴的发帖日期
- 由系统直接给予
- date类型
SQL实现代码:
create table revert_table(
revert_account number(30,0) not null,
revert_messageid number(30,0) not null,
revert_id number(30,0) primary key not null,
revert_content varchar2(300) not null,
revert_data date default sysdate,
constraint fk_revert_account_account foreign key(revert_account) references account_table(account_account),
constraint fk_revert_message_id foreign key(revert_messageid) references message_table(message_id)
);
五、创建数据库序列
以创建数据库自动增长队列的方式创建不重复的数字id,一个表创建一个序列,共需建立3个序列,如下所示:
5.1、创建序列accountnum序列SQL代码:
CREATE SEQUENCE accountnum
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
5.2、创建序列messagenum序列SQL代码:
CREATE SEQUENCE messagenum
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
5.3、创建序列revertnum序列SQL代码:
CREATE SEQUENCE revertnum
INCREMENT BY 1
START WITH 1
NOMAXVALUE