我们有一个CRM,它包含一个memebr实体作为系统中最重要的实体。问题是它有太多的属性使它非标准化。这是属性:
[MEMBER ID]
,[FIRST NAME]
,[LAST NAME],[TITLE],[ADDRESS 1],[ADDRESS 2]
,[ADDRESS 3],[POST CODE],[TELEPHONE HOME]
,[TELEPHONE WORK],[GENDER],[DURATION OF MEMBERSHIP],[START DATE]
,[AMOUNT PAID],[BALANCE],[STATUS],[DOB]
,[MONTH FEE],[ORIGINAL START DATE],[PAYMENT TYPE]
,[HEAR],[Interest],[NUMBER MONTH FEES]
,[FIRST MF DUE DATE],[LAST VISIT],[CARD NUMBER]
,[BANK NAME],[SORT CODE],[ACCOUNT NUMBER]
,[DEFINE1],[DEFINE2],[DEFINE3],[DEFINE4]
,[DEFINE5],[DEFINE6],[DEFINE7],[DEFINE8],[DEPENDENT]
,[ROLL NO],[ALLOWED VISITS],[TOTAL VISITS],[CREDIT LIMIT]
,[JOINING FEE],[NON VAT MONTH FEE],[PAYMENT METHOD]
,[CentreId],[Letter Title],[Email Address]
,[Vehicle Registration],[Standing Order Reference],[Notes]
,[Outstanding Balance],[MobileNo],[FaxNo],[Nonparent Password]
,[Emergency Name1],[Emergency Relation1],[Emergency HomeTel1],[Emergency WorkTel1],[Emergency MobileNo1]
,[Emergency Name2],[Emergency Relation2],[Emergency HomeTel2]
,[Emergency WorkTel2],[Emergency MobileNo2],[Doctors Name],[Doctors Tel],[Medical Info]
,[Password],[MethodOfContact],[Address 4],[Address 5]
,[Address 6],[ExtRef1],[ExtRef2],[ExtRef3],[ExtRef4],[OnMailingList],[HasChildren]
,[ParentMemberId],[MedicalIllness],[MedicalQuestion],[COMMENTS]
,[MembershipFeePaid],[JoiningFeePaid],[IsDeleted]
,[Pending],[Induction],[UserName]
,[CompanyName],[RowVer],[MembershipProductId]
,[Id],[EmailVerified],[ConcessionTypeId]
,[MemberTypeId],[Age],[Renewal_Date]
我正在考虑将这件事情正常化。有什么建议吗?
答案 0 :(得分:1)
数据库重构通常是一个非常糟糕的过程。看看您是否可以获得RedGate的SQL Refactor许可。
重构的一种方法是创建一个模仿当前表结构的视图。一旦外部应用程序从视图而不是表中读取,您就可以开始重构表(然后您只需要修改视图,而不是应用程序)。当然这对插入或更新数据没有帮助,这是另一个故事:)
答案 1 :(得分:0)
首先,如果字段已编号,则通常是标准化的候选对象。考虑将地址详细信息移出开始。电话号码可以在其他地方存储,并且可以存储类型,以节省需要很多可能不使用的字段的需要。如果为类型提供了序列,则地址详细信息可以遵循类似的模式(因此您可以派生字段应该打印的顺序)。
银行详细信息是另一个候选人。
以这种方式考虑。该成员应包含与仅成员成员直接相关的详细信息。不是会员的银行,地址等。它应该包含他们的名字,姓氏,会员的直接属性的详细信息。
考虑查看其中一些链接以获取想法:
http://databases.about.com/od/specificproducts/a/normalization.htm
http://support.microsoft.com/?id=209534
http://ipconflict.co.uk/2009/12/29/basic-guide-to-database-normalisation-first-normal-form/