作者dinos (守护神)
看板Database
标题Re: [SQL ] 线上DVD系统 , mysql , 正规化
时间Fri Jun 1 21:10:24 2007
※ 引述《aiyswu (乐子)》之铭言:
: @@
: 我是某四技资管系学生,目前正在作「系统分析」这门课。
: 虽然老师没有要求,一定要弄出介面和资料库。
: 不过有作有加分嘛!正好可以从实做中学习,有压力,比较好学东西。
: 其实我也有自个儿找些网站。
: 例如:http://chensh.loxa.edu.tw/php/B_1.php
: 不过;观念上,还是有些混沌。
: 我们要作的系统及资料库为「DVD线上系统」
: 主要是使一般DVD出租店,能够拥有一个放在网路上,让会员可以在家里
: 上网,就能够得知,某DVD片,是否还有库存,是否可预借,以及查询DVD
: 新片、DVD预借、热门排行、押金余额等等。
: 我的资料库规划出这样↓
: 资料库 DVDonline
member
memberPky int(10) un primary 会员流水号
memberCid char(16) index 会员身份代码
memberRealname char(24) index 会员真实姓名
memberBirth date index 会员生日日期
memberLevel tinyint(3) un index 会员等级
memberDepost decimal(10,2) 0 index 会员剩余存额
memberJoinDate date 会员加入日期
movie
moviePky int(10) un primary 电影流水号
movieName char(64) index 电影名称
movieOrigName char(64) index 电影原名
film
filmPky int(10) un primary 影带流水号
moviePky int(10) un index 电影流水号
filmCid char(16) index 影带编号
filmType tinyint(3) un index 影带类别
filmStatus tinyint(3) un 0 index 影带状态(架上/出借/遗失)
filmRentCount int(10) un 0 index 影带出租次数
filmJoinDate date 影带入库日期
filmDropDate date nu 影带下架日期
person
personPky int(10) un primary 人名流水号
personRealname char(24) index 人名
publishing
publishingPky int(10) un primary 片商流水号
publishingName char(24) 片商名称
comm
commPky int(10) un primary 联络方式流水号
memberPky int(10) un index 会员流水号
commContent char(128) 联络方式内容
commType tinyint(3) un index 联络方式类别
commUpdateDate date index 联络方式最後更新日期
renting
filmPky int(10) un index 影带流水号
memberPky int(10) un index 会员流水号
rentingOpenDate date 出借日期
rentingReturnDate date 预计归还日期
rentingCloseDate date nu 归还日期
booking
moviePky int(10) un index 电影流水号
memberPky int(10) un index 会员流水号
bookingDate date index 预约日期
bookingStatus tinyint(3) un index 预约状态
bookingDisableDate date nu index 预约完成日期
lising
moviePky int(10) un i+primary 电影流水号
personPky int(10) un i+primary 人名流水号
listingStatus tinyint(3) un i+primary 角色关系(导演/演员)
查询未归还名单
SELECT movie.movieName,film.filmCid,member.memberRealname FROM film LEFT JOIN
movie ON film.moviePky=movie.moviePky LEFT JOIN renting ON film.filmPky=
renting.filmPky LEFT JOIN member ON member.memberPky=renting.memberPky
WHERE renting.rentingCloseDate is NULL ORDER BY renting.rentingReturnDate
DESC
查询电影资料
SELECT person.personRealname,listing.listingStatus,movie.movieName FROM person
LEFT JOIN listing ON listing.personPky=person.personPky LEFT JOIN movie ON
movie.moviePky=listing.moviePky WHERE movie.moviePky='%d' ORDER BY
listing.listingStatus
如果是我大概就这样写吧 ^^""
: - 资料表 MemberList
: - No(会员编号) int(10) Unsigned , Primary
: - Name(会员姓名) varchar(10)
: - Age(年龄) tinyint(2) Unsigned
: - ID(统一编号) varchar(10)
: - Phone(联络电话) varchar(15) Unsigned
: - Add(地址) varchar(100)
: - LoanMovie(已借影片) varchar(10)
: - AheadMovie(预借影片) varchar(10)
: - LoanDate(到期日) date
: - 资料表 MovieList
: - MovieNo(影片编号) int(10) Unsigned , Primary
: - MovieName(影片名称) varchar(20)
: - Airect(导演) varchar(20)
: - Actor(演员) varchar(100)
: - MFAT(片商) varchar(20)
: - LoanTimes(借阅次数) smallint(5) Unsigned
: - MovieState(影片状态)varchar(20)
: 由於人数仅三人,且都不是很了解资料库,甚至有人没有接触过资料
: 库。所以资料库暂时不规划得很复杂,毕竟连正规化都不会了,所以
: ;影片部份也没有规划栏位来表示影片类型等等。
: 目前是希望做到二阶正规化,不晓得上面是否已算是二阶正规化呢?
: 相依性的问题,我还是搞不是很清楚。我的资料库都是模仿中原大学
: 网路策进会的教学影片作的。
: 请各位前辈,指导一下吧@@..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.158.15