作者Adonisy (拍手小安)
看板Database
标题Re: [SQL ] 线上DVD系统 , mysql , 正规化
时间Mon Jun 4 23:59:33 2007
※ 引述《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