Oracle之映像租赁系统(Video)

本文介绍了Oracle影像租赁系统的业务背景、E-R图、表结构,并提供了查询用户租赁信息、最近一周订阅、到期归还、超期未还、月度热门、无拷贝影像以及本周预定最多的影像资料的SQL实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle之映像租赁系统

一、系统描述

映像租赁系统:

​ 在美国,由于知识产权得到了很好的保护,所以一般不会出现盗版的问题。美国人除去在电影院看电影之外就是在影像店租碟回家去看。在这种情况下,影相出租的店铺就比较多。在信息化的背景下,设计一套系统管理影像出租业务成了当务之急,于是通过和店铺经理沟通,获得如下业务信息:

​ 1.凡是想要到该影像店租赁影碟的被称为会员(Member),只有成为该店的会员才能够租借该店的影像资(Title)。
​ 2.影像店中不定期会购买一些影像资料(Title),并且获得了复制该影像资料的权力,每一份影像制品可以有多个拷贝,每一份拷贝称为一个复制条目(TitleCopy)。
​ 3.对客户而言,原始的影像资料(Title)只能被预定并且可以同时接受多份预定(Reservation),客户可以租赁的是影像拷贝(TitleCopy)。
​ 4.任何一个客户的租赁信息(Rental)都必须存档以便将来店铺对客户的租赁进行评估。

通过和租赁店经理详细面谈,了解更详细的业务的信息:

​ 1.每一个会员必须被记录的信息包括会员编号id,而且每个会员的编号是唯一的,姓名name, 成为会员的日期join_date,以及其他需要被记录的信息包括(住宅地址address, 所在城市city, 住宅电话phone)。
​ 2.影像制品(Title)必须被记录的信息包括编号id,而且所有影像制品的编号都是唯一的,标题title,影片说明description,价格price,和其他如下信息(分级rating,种类category, 发行日期release_date)。
​ 3.每一份影像拷贝(TitleCopy)都有各自的编号id,同一个影像的若干拷贝编号不同,但是不同的影像拷贝的编号可能会重复。必须记录下是否已经出租,以便于店员随时能够查询拷贝资料的当前状态(status)。
​ 4.系统中允许会员预定某项影像资料,但必须提前预约租赁时间(res_date)。
​ 5.每一项出租事项需要记录下来(租借日期book_date,实际归还日期act_ret_date,期待归还日期/过期日期(exp_ret_date)。

二、E-R图

在这里插入图片描述

三、表实例图

title表:

在这里插入图片描述

member表:

在这里插入图片描述

title_copy表:

在这里插入图片描述

reservation表:

在这里插入图片描述

rental表:

在这里插入图片描述

四、建表语句

//创建title表
create table title(
	id number(7) ,
	title varchar2(15) constraint title_title_nn not null,
	description varchar2(15) constraint title_description_nn not null,
	rating char(1),
	category varchar2(15),
	release_date date,
	price number(7,2) constraint title_price_nn not null,
	constraint title_id_pk primary key(id)
);

//创建member表

create table member(
	id number(7),
	last_name varchar2(15) constraint member_last_name_nn not null,
	first_name varchar2(15),
	address varchar2(15),
	city varchar2(10),
	phone varchar2(11),
	join_date date constraint member_join_date_nn not null,
	constraint member_id_pk primary key(id)
);

//创建title_copy表

create table title_copy(
	id number(7),
	status varchar2(8) constraint title_copy_status_nn not null,
	title_id number(7) constraint title_copy_title_id_nn not null constraint title_copy_title_id_fk references title(id),
	constraint title_copy_id_pk2 primary key(id,title_id)
);

//创建reservation表

create table reservation(
	res_date date,
	title_id number(7) constraint res_title_id_nn not null 
	constraint res_title_id_fk references title(id),
	member_id number(7) constraint res_member_id_nn not null
	constraint res_member_id_fk references member(id),
	constraint res_res_date_pk3 primary key(res_date,title_id,member_id)
);

//创建rental表

create table rental(
	book_date date,
	act_ret_date date,
	exp_ret_date date,
	title_copy_id number(7),
	member_id number(7) constraint rental_member_id_nn not null
	constraint rental_member_id_fk references member(id),
	title_copy_title_id number(7),
	constraint rental_book_date_pk3 primary key(book_date,title_copy_id,title_copy_title_id),
	constraint rental_title_copy_id_fk2 FOREIGN KEY(title_copy_id,title_copy_title_id) references title_copy(id,title_id)
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值