反对将联系人详细信息合并到一个字段中的理由是什么?

时间:2011-05-17 16:42:09

标签: sql-server database database-design

我们有一位客户坚持将此时的姓名和联系方式放在一个字段中。以鲍勃史密斯先生和简史密斯夫人为例。鲍勃先生和简夫人将进入名字领域,史密斯将进入姓氏。如果联系人姓氏不同或者带有带连字符的名称,则会变得更加混乱。客户只需要一个联系人记录,因此他们想出了这个系统并自行实现。

我们的系统是围绕联系人设计的,每个人都是个人联系人,甚至是已婚者。由于我们必须分配给人们和我们需要保留的笔记的一些属性,以联系为中心的方法是最好的。上述问题发生在我们处理的大约1/3的情况中。

在内部,我的团队已经讨论了如何按照设计方式销售客户使用数据库。我们列出了表格信件和联系人列表作为保持数据清洁的主要原因以及我们设计的字段。例如,使用我们的建议,客户可以更加精细地控制表单信函的创建和数据分类。

有关我们如何向客户出售此产品的任何建议?

5 个答案:

答案 0 :(得分:1)

告诉他们他们从你的系统中得到的东西只能和投入的东西一样好。如果他们想要输入不一致的数据,那么他们付出的代价就是无法生成信件或邮件列表。未来。

他们可能需要为自己努力学习这一课。我在切换名称时看到了更多问题,例如,输入Smith作为名字,将Bob作为最后名称。

另外,你能说两个字段吗?


听起来他们想要输入的内容类似于AddressLine1,AddressLine2。这只是一个糟糕的设计,我认为你有两个名字字段,但他们只会在其中一个(名字)中输入数据。

所有你能做的就是在他们要求时帮助他们。他们将获得他们应得的系统。

答案 1 :(得分:0)

向您的客户展示数据库设计的正常形式:
> http://www.phlonx.com/resources/nf3/

告诉他这些正常形式旨在使数据库随着时间的推移更易于管理,并使其更加灵活。

答案 2 :(得分:0)

难道你不能只创建一个包含名字和姓氏的视图吗?对于某些服务器,您还可以创建可编辑的视图...因此,您的客户会很高兴并且数据将被存储为标准化。

答案 3 :(得分:0)

我试着把它放在金钱和时间方面。您将花费更多的时间来尝试使用他们的设计来保留数据库中的重复数据,更多时间来构建相关的报告或查询(不断地解析块名称字段......他们是否也想要一个地址?)? ),如果他们想要将数据发送给第三方进行分析和指标,则需要更多资金来清理数据(自己或其他人)。

听起来他们不想放弃他们的设计,可能部分是因为他们理解它。您可能希望首先尝试以某种方式中途遇到它们,并让它们参与到对设计进行渐进式改进的过程中。通过这种方式,他们可以看到并理解现在可能只是在他们头上的好处,将他们赶出他们的舒适区。他们必须信任你的宝宝:)

答案 4 :(得分:0)

最好的论据是,除非他们把东西放在他们所属的地方,否则你不会对数据库的行为负责。

如果他们想要向每个“家庭”发送一封邮件,那么我相信您的应用可以做到这一点。 (可能已经这样做了。)你们只需要就“家庭”的含义达成协议。由于可能有出租房或长期客人,因此并不总是意味着“每个地址只有一个邮件”。

FWIW,我几十年来一直在做这些事情,我仍然发现医生和律师(以及他们的员工)是最难对付的人。有一次,当一位医生的IT人站起来,用拳头敲打桌子,一遍又一遍地尖叫着我时,我走出了一个会议(当然,失去了竞标合同的机会),“医生们不是人!医生不是人!“。