Requirements 真实需求与业务需求
假设我有一个帐户创建表单,它填充了一个用户数据库。假设这个数据库表有6列:UserID、UserLogin、Password、Email、Demographic1、Demographic2 该程序确实需要用户ID、用户登录名和密码。没有它就不能工作。其余都是“业务需求”,公司想知道这些事情。它们是“必需的” 是更好地构造我的应用程序和数据库,使它们实际上是必需的,还是在业务逻辑中强制执行此约束 我的直觉告诉我第二种选择,但在我所看到的几乎所有生产代码中,第一种通常都是这样Requirements 真实需求与业务需求,requirements,business-logic,constraints,Requirements,Business Logic,Constraints,假设我有一个帐户创建表单,它填充了一个用户数据库。假设这个数据库表有6列:UserID、UserLogin、Password、Email、Demographic1、Demographic2 该程序确实需要用户ID、用户登录名和密码。没有它就不能工作。其余都是“业务需求”,公司想知道这些事情。它们是“必需的” 是更好地构造我的应用程序和数据库,使它们实际上是必需的,还是在业务逻辑中强制执行此约束 我的直觉告诉我第二种选择,但在我所看到的几乎所有生产代码中,第一种通常都是这样 是缺乏计划,还是业务/
是缺乏计划,还是业务/项目经理给程序员留下了某种印象(他们告诉我这是必需的,我会让它成为必需的)。或者,有没有令人信服的理由?你应该同时做这两件事。约束数据库以满足此要求,如果必要,还将引发异常。这样,如果您执行sql插入/更新,则该规则将存在
然而,在业务方面,这在表单上可视地表示为所需的验证逻辑,并弹出一条更好的错误消息。选择您认为最好的;您是程序员-->一个具有用户ID、用户登录名和密码的数据库,并将其他数据库耦合到该数据库
问题是,就像生活中的许多事情一样,最终你将对自己的选择负责,你可以通过做出比客户更好的选择来区分自己。客户就像一个孩子,而你是家长。你希望孩子快乐,所以有时候你必须为孩子做出更可能让孩子长期快乐的选择。即使你的孩子(客户)和岳母(老板)在另一个方向上吸吮你……我不确定我是否真的理解你的问题。如果您正在处理的域将用户定义为一个实体,并要求用户实体具有电子邮件、人口统计等,则这些字段是必需的,并且应保留在某种类型的永久存储(数据库、文件等)中 我们的实际要求通常指的是技术要求,这是项目运行所真正需要的。我们通常在结构设计中使用它们,例如在您的案例中使用DB约束 业务需求处理业务感知,以使应用程序可接受。在大多数情况下,但并非所有情况下,这通常涉及如何从我们开发的程序中生成ROI。在我们的项目中,人口统计信息通常与某种营销活动、一种可用于以后向用户推广的数据或类似的东西联系在一起 我发现,业务人员通常不会向我们充分解释业务需求的必要性,而只是简单地说它们是“必需的”。只是说如果不让我们理解上下文,我们就很难决定应该如何实施它。如果我们知道业务需求是业务的核心,如果我们不能正确地实现它,公司可能会损失很多,那么显然我们会选择一种更安全的方式来实现它。在您的例子中,这可能是通过将其嵌入结构约束本身来实现的 为了回答您的问题,理解业务/pm提出的业务需求的上下文和需求非常重要。由于您是同一个团队中的一员,您应该了解这一点,以便做出最佳的技术决策。作为个人信念,当我有疑问时,我总是会进行更有力的检查和验证(尽管这并不一定会导致最佳决策)
希望这有助于通过将这些约束放在数据库中,您要求数据库帮助实施您的业务逻辑。有充分的理由在数据库中强制执行此类约束