2011-05-23 12 views
-2

我們有一個包含memebr實體的CRM作爲系統中最重要的實體。問題在於它有太多的屬性,導致它不規範。這裏是屬性:重新設計CRM中成員實體的建議

[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

應根據數據使用情況仔細執行標準化和非標準化等。查看屬性時引起注意的是當然是許多編號這些領域肯定是正常化的候選人,並且會爲您提供關於相關價值數量的更大靈活性。但建議必須具體針對特定領域。 – faester 2011-05-23 08:08:16

回答

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/

1

數據庫重構常常是一個相當paintful過程。看看你是否可以獲得RedGate的SQL Refactor的許可證。

重構的一種方法是創建一個模仿當前表結構的視圖。一旦外部應用程序從視圖中讀取數據而不是表格,您就可以開始重構表格了(然後您只需修改視圖而不是應用程序)。當然,這對插入或更新數據沒有幫助,這是另一回事:)