Re: [SQL ] 線上DVD系統 , mysql , 正規化
※ 引述《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
討論串 (同標題文章)
完整討論串 (本文為第 7 之 19 篇):