2011-06-07 38 views
1

我无法决定是否将帮助台应用程序保留在与其他公司应用程序相同的数据库中,或完全分开它。数据库设计 - 帮助台应用程序

服务台应用程序可以记录来自电话,电子邮件,网站的支持请求。

我们可以向注册客户和非注册客户发送问题。

将帮助台应用程序保存在同一个数据库中的唯一原因是我们可以共享用户群。但是,我们可以再次让用户创建一个新帐户以获得支持,或者将用户帐户与帮助台应用程序同步。

如果我们分开帮助台应用程序,我们的数据库备份也会变小。或者只是将帮助台应用程序保存在同一个数据库中,这使得整体开发/集成变得更加容易,而且仅备份1个数据库。 (也许更大但仍然是1个数据库)

你会做什么?

+3

假设您将帮助台数据库放入公司应用程序数据库中。如果用户打电话给帮助台报告企业应用程序数据库服务器已经融化并躺在服务器房间中间的一堆小块中,您打算如何输入他的票? – 2011-06-07 03:23:36

+0

@John R斯特罗姆 - 这很好。 – David 2011-06-07 03:32:37

+0

啊,好点。那么在这种情况下,我们不能提供支持,因此很糟糕。 – 001 2011-06-07 03:34:40

回答

2

我认为这是一个主观的答案,但我会保持帮助台系统作为一个单独的实体,除非有良好的商业理由使用相同的用户群。

这主要是基于我在专业服务支持通话记录/票务软件所看到的,但我有另一个令人信服的理由 - 安全 - 逻辑如下:

一般来说,服务台售票系统一般需要比其他业务系统(会计,购物,客户关系管理等)更不敏感的信息。您的技术人员可能需要知道如何联系客户,但可能不需要存储完整的地址,出生日期等。以下所有内容均基于一个假设 - 您现有的客户数据包含敏感或个人身份识别数据这是您的票务系统不需要的。

  • 原理1:通过限制存储的数据来减少攻击面积。一般来说,我赞同只应收集绝对需要的数据的原则。现有的敏感信息较少意味着攻击者可以窃取。

  • 原则2:通过减少攻击到现有敏感数据的途径来减少表面积。假设您已经拥有庞大的用户群,并且假设您已经存储了有关您的客户的潜在有用数据,那么在数据中添加另一个挂钩的应用程序只会增加攻击到现有客户群中的途径。这导致我...

  • 原则3:最小特权。您为帮助台软件数据库设置的用户只能访问您的帮助台分析师绝对需要的数据。如果您在设计数据库时考虑到一组特定的需求,那么实现这一点会更容易。从维护的角度来看,为了只允许访问非敏感数据,必须在敏感数据上设置视图和存储过程,而不是让数据库设计为只有您需要的数据,从维护的角度来看,要困难得多。

当然,我可能会过度思考它。去其中任何一条路线还有其他令人信服的理由。我只是想给你一些想法。

1

这绝对是一个基于你的环境的主观答案。您必须权衡一种选择的好处/缺点与另一种选择的好处/缺点。但是,我认为在分离两个数据库时会发现最大的好处。我真的不喜欢有两个目的的数据库。相反,只能用一个目的来创建一个数据库。以下是我看到的好处:

  • 可移植性 - 如果您决定将帮助台移动到其他服务器,则可以不出问题。如果您想将企业数据库移动到其他地方,情况也是如此。
  • 问题的分离 - 每个数据库都是为了自己的目的而设计的。一个人的安全不会干扰另一个人的安全。
  • 备份策略 - 目前,两个系统只能有一个备份策略,因为它们在同一个数据库中。如果你将它们分开,你可以比其他备份更频繁(并且备份会更小/更快)。

我看到的缺点(无法轻松访问公司数据)实际上在我看来是一个积极的想法。从企业数据库访问数据听起来不错,但它可能是一个安全问题(也是一个可维护性问题)。相反,通过这种方式,您可以限制授予服务台系统的访问权限(以及访问类型)。数据库可以相当容易地访问对方,所以不会那么不方便,并且可以让您在公司数据和帮助台数据之间添加一个很好的安全屏障。