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

看板Database作者 (拍手小安)時間18年前 (2007/06/04 23:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串17/19 (看更多)
※ 引述《aiyswu (樂子)》之銘言: : 資料庫 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 單以正規化的角度來看,你的已借影片,預借影片這兩個欄位已經違反第一正規化 第一正規化是要避免 repeating group LoadDate(到期日),則是違反第二正規化 第二正規劃是欄位是否與主鍵有相依性 換句話說,LoadDate不該放在 MemberList資料表中 如果某甲出來租片,租了十片 過了兩天,又來租五片... 這時你想看看,馬上就破功了... (因為前面租的十片,到期日會跟著順延 XD) 因為你只有一個 LoanDate欄位,記在會員資料表上會出問題的 其實我是建議,設計好資料庫的資料表後,帶值進去 再模擬實際情況,這樣你就會發現問題點出在哪裡了 正規化只是熟的人用來檢查有無違反資料的一致性的好工具 對不熟的人,它永遠是一個不容易了解的技術... XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.161.127
文章代碼(AID): #16P3Re9g (Database)
討論串 (同標題文章)
文章代碼(AID): #16P3Re9g (Database)