sql - 向非程序员解释为什么 "Just add another column to the DB"是个坏主意

标签 sql database architecture communication normalization

<分区>

我有销售人员和专柜柜台人员,他们试图向客户推销定制产品,这很好。但是当一个复杂的变更请求出现时,我发回了一个大的估计,他们会感到困惑。他们经常回头问我“你为什么不能再添加一列?”换句话说,它们意味着每个客户有十几个自定义列。

到目前为止,我所能得到的只是“我们正在努力使数据库保持良好的规范化”,这对他们来说毫无意义。我告诉他们我可以创建一个表系统,允许每个客户定义他们自己的一组自定义字段,但当然这比“只添加几列”要花费更多的时间和金钱。当然,他们也想吃蛋糕。

那么我怎样才能让他们理解呢?

最佳答案

I tell them I can create a system of tables that allows each client to define their own set of custom fields, but of course that takes more time and money than "just adding a few columns".

我认为您应该将此选项推给您的老板,因为可定制性显然是一项非常需要的功能。强调为每个客户单独定制(而不是通用的、有限的可定制性)系统意味着必须为每个客户创建补丁和更新(导致更长的推出时间和更高的成本);非标准化安装意味着帮助台票将需要更长的时间才能关闭(导致客户不满意和更高的成本);等等

换句话说,通过表明他们的解决方案的成本远远超过您的解决方案的成本,来出售短期痛苦以换取长期 yield 。

销售人员专注于完成销售。这就是他们获得佣金的原因。他们不关心之后会发生什么。然而,老板们关注的是成本。卖给你的老板,你的老板可以卖给销售人员。

关于sql - 向非程序员解释为什么 "Just add another column to the DB"是个坏主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1724381/

相关文章:

sql - 如何可靠地列出和删除 Oracle 中的所有空间索引?

php mysql在数据库的文本区域中存储换行符

entity-framework - EF + WCF 在具有复杂对象图的三层应用程序中。使用哪种模式?

web-services - 推荐的 Web 服务架构书籍/站点?

sql - 插入 id(自动生成,仅列)

php - 如何在第三个变量 mysql 查询中对两个子查询计数求和?

sql - 使用sql server management studio向sql表添加列

xml - Hibernate 写入 XML 数据库

sql - Azure SQL 复制

architecture - 端口和适配器/六边形架构 - 术语和实现的澄清