Re: [SQL ] 線上DVD系統 , mysql , 正規化

看板Database作者 (多想兩分鐘 = =")時間18年前 (2007/06/01 19:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/19 (看更多)
※ 引述《aiyswu (樂子)》之銘言: : @@ : 我是某四技資管系學生,目前正在作「系統分析」這門課。 應該會要你們畫圖吧,ERD、DFD之類的(我學的時候老師是這樣教啦 @@) 現在只大概記得 ERD..XD 應該會有兩個實體:一個叫會員,一個叫影片,兩個實體之間有個租借的關係 照著圖來設計,會有三個TABLE,會員、影片、租借 兩個實體衍生出來的 TABLE你有建了,一個關係衍生出來的 TABLE前面有人提了 存的東西差不多就那樣 : 雖然老師沒有要求,一定要弄出介面和資料庫。 : 不過有作有加分嘛!正好可以從實做中學習,有壓力,比較好學東西。 有壓力的確比較好學…所以工作學比較快,薪水就是壓力 : 其實我也有自個兒找些網站。 : 例如:http://chensh.loxa.edu.tw/php/B_1.php : 不過;觀念上,還是有些混沌。 : 我們要作的系統及資料庫為「DVD線上系統」 : 主要是使一般DVD出租店,能夠擁有一個放在網路上,讓會員可以在家裡 : 上網,就能夠得知,某DVD片,是否還有庫存,是否可預借,以及查詢DVD : 新片、DVD預借、熱門排行、押金餘額等等。 : 我的資料庫規劃出這樣↓ : 資料庫 DVDonline : - 資料表 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) 這個欄位應該不符合第一正規化,你們是想把一堆演員都放在這吧XD : - MFAT(片商) varchar(20) : - LoanTimes(借閱次數) smallint(5) Unsigned : - MovieState(影片狀態)varchar(20) : 由於人數僅三人,且都不是很了解資料庫,甚至有人沒有接觸過資料 : 庫。所以資料庫暫時不規劃得很複雜,畢竟連正規化都不會了,所以 : ;影片部份也沒有規劃欄位來表示影片類型等等。 影片類型對分數影響應該不大XD : 目前是希望做到二階正規化,不曉得上面是否已算是二階正規化呢? : 相依性的問題,我還是搞不是很清楚。我的資料庫都是模仿中原大學 其實我也不大了…但 常變動的值跟 不常變的分開存放效率會比較好,應該滿直覺的吧 照著這個想法做應該就差不多了 @@ 比如說影片資料表中,基本資料不會變,但借閱次數、狀態(這存啥 囧a)會一直變 演員這個欄位會用另一個表存 影片編號,演員…然後一部片用到好幾個row 存,然後會發現沒有PK,又會多一個流水號 所以有時候為了實作效率會做一些反正規化這樣(既然是作業,砍掉欄位也沒什麼XD) p.s.其實效率差比較多的是用一堆join @@ 個人覺得分數不在於表建的大,而是能實現每個正規化動作(或其它上課教的) 嗯,就這樣。 : 網路策進會的教學影片作的。 : 請各位前輩,指導一下吧@@.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.213.20 ※ 編輯: grence 來自: 61.229.213.20 (06/02 02:33)
文章代碼(AID): #16O0EMsm (Database)
討論串 (同標題文章)
文章代碼(AID): #16O0EMsm (Database)