09-新闻发布系统数据库-管理角色数据操作
项目描述
随着互联网的进一步发展,网络媒体在人们心中的地位进一步提高,“新闻发布系统”作为网络媒体的核心系统,其重要性是越来越突出:一方面,它提供一个新闻管理和发布的功能;另一方面,现在的新闻发布要求实现与普通的用户交互,用户可以很方便地参加一些调查和相关新闻的评论,本项目主要是对新闻发布系统中的新闻信息表进行操作。
新闻发布系统数据库操作要求如下:
1)数据库NewsDB。
2)角色表Roles,表结构如下表J2-9-1所示。
表J2-9-1 Roles表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
RoleId | 角色ID | int | 否 | 主键,标识列(1,1) |
RoleName | 角色名称 | 字符(30) | 否 |
3)Roles表基础数据如表J2-9-2所示记录。
表J2-9-2 Roles表基础数据
RoleId | RoleName |
---|---|
1 | 普通角色 |
2 | 经理 |
3 | 管理员 |
4)新闻类别表NewsKind,结构如表J2-9-3所示。
表J2-9-3 NewsKind表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
NewsKindId | 类别ID | int | 否 | 主键,标识列(1,1) |
NewsKindName | 类别名称 | 字符(30) | 否 |
5)NewsKind表基础数据如表J2-9-4所示记录。
表J2-9-4 NewsKind表基础数据
NewsKindId | NewsKindName |
---|---|
1 | 今日报道 |
2 | 每周快讯 |
3 | 国内新闻 |
4 | 国际新闻 |
5 | 图片新闻 |
6)角色_新闻类别管理表RolePower,结构如表J2-9-5所示。
表J2-9-5 RolePower表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
RoleId | 角色ID | int | 否 | 主键,外键(参照Roles表) |
NewsKindId | 类别ID | int | 否 | 主键,外键(参照NewsKind表) |
(1)任务描述
任务1:用SQL语言创建网上投票数据库
1)创建数据库NewsDB,判断系统中是否有该名字的数据库,如果有则删除;如果没有则创建该数据库。
2)主数据库文件初始值10MB,最大为30MB,按3MB进行递增。
3)日志文件初始值为5MB,最大为20MB,按1MB进行递增。
IF DB_ID('NewsDB') IS NOT NULL DROP DATABASE NewsDB
GO
CREATE DATABASE NewsDB
ON PRIMARY
(
NAME=NewsDB,
FILENAME='D:\XXXX\NewsDB.mdf',
SIZE=10MB,
MAXSIZE=30MB,
FILEGROWTH=3MB
)
LOG ON
(
NAME = NewsDB_log,
FILENAME = 'D:\XXXX\NewsDB_log.ldf',
SIZE = 5MB ,
MAXSIZE=20MB,
FILEGROWTH=1MB
)
GO
任务2:用SQL语言创建角色表Roles、新闻类别表NewsKind、角色_新闻类别管理表RolePower
1)按照提供的表结构创建数据库表,并设主键、外键。
CREATE TABLE Roles(
RoleId int not null IDENTITY(1,1) PRIMARY KEY,
RoleName NVARCHAR(30) not null,
)
CREATE TABLE NewsKind(
NewsKindId int not null IDENTITY(1,1) PRIMARY KEY,
NewsKindName NVARCHAR(30) not null,
)
CREATE TABLE RolePower(
RoleId int not null ,
NewsKindId int not null,
foreign key (RoleId) references Roles(RoleId),
foreign key (NewsKindId) references NewsKind(NewsKindId),
)
任务3:用SQL语言对新闻信息表News进行操作
1) 管理员可以添加任何类型新闻、经理则可以添加除今日报道外的所有类型新闻、普通用户则只可以添加今日报道,根据上述请将表 RolePower表中数据添加完善。
2) 添加表中数据到角色表Roles中,添加表中数据到新闻类别表NewsKind 。
3)在表RolePower中删除普通用户的权限记录。
insert into Roles values('普通角色'),('经理'),('管理员')
insert into NewsKind values('今日报道'),('每周快讯'),('国内新闻'),('国际新闻'),('图片新闻')
insert into RolePower values( (select RoleId from Roles where RoleName = '普通角色'),(select NewsKindId from NewsKind where NewsKindName = '今日报道') )
insert into RolePower values( (select RoleId from Roles where RoleName = '经理'),(select NewsKindId from NewsKind where NewsKindName = '每周快讯') )
insert into RolePower values( (select RoleId from Roles where RoleName = '经理'),(select NewsKindId from NewsKind where NewsKindName = '国内新闻') )
insert into RolePower values( (select RoleId from Roles where RoleName = '经理'),(select NewsKindId from NewsKind where NewsKindName = '国际新闻') )
insert into RolePower values( (select RoleId from Roles where RoleName = '经理'),(select NewsKindId from NewsKind where NewsKindName = '图片新闻') )
insert into RolePower values( (select RoleId from Roles where RoleName = '管理员'),(select NewsKindId from NewsKind where NewsKindName = '今日报道') )
insert into RolePower values( (select RoleId from Roles where RoleName = '管理员'),(select NewsKindId from NewsKind where NewsKindName = '每周快讯') )
insert into RolePower values( (select RoleId from Roles where RoleName = '管理员'),(select NewsKindId from NewsKind where NewsKindName = '国内新闻') )
insert into RolePower values( (select RoleId from Roles where RoleName = '管理员'),(select NewsKindId from NewsKind where NewsKindName = '国际新闻') )
insert into RolePower values( (select RoleId from Roles where RoleName = '管理员'),(select NewsKindId from NewsKind where NewsKindName = '图片新闻') )
delete from RolePower where RoleId =(select RoleId from Roles where RoleName = '普通角色')