建议在CRM中重新设计成员实体

时间:2011-05-23 08:00:47

标签: c# .net vb.net visual-studio-2010 normalization

我们有一个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]

我正在考虑将这件事情正常化。有什么建议吗?

2 个答案:

答案 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/