新站点基于另一个站点的数据-最佳系统架构?

时间:2018-11-06 13:41:08

标签: django web-services web content-management-system

这就是问题:

  1. 我有一个网站,我们称它为Catalogue。这是一个高级产品目录,其中包含许多项目。它可以在基于php的CMS上运行,它不是我做的,是相当完整和复杂的系统。重要的是,它具有用户身份验证系统和数据库中的许多用户。除非登录,否则您将无法访问大多数产品。

  2. 我想拥有另一个网站,并且我想自己建立一个网站。它将包含产品的一些其他数据,扩展下载部分以及一些媒体。我想用Django构建它。

另一个网站将大量使用Catalogue的数据库: -它需要使用目录中的登录名/密码来授权用户 -需要客户数据来定制他们的视图。

我在构建更高级的系统方面没有丰富的经验。经验丰富的程序员可以告诉您如何做到这一点吗?

具体地说,我担心数据库:我应该只使用原始数据库吗?并合并所有与Django相关的东西吗?会影响目录吗? 通常是个好主意吗?

如上所述,我将使用Catalogue数据库中的用户数据来对用户进行身份验证。这个想法有一些安全问题吗?

直觉上,我应该使用一个数据库,而不是两个。如果我错了,请纠正我。

请让我知道您对这种想法的看法。也许这不值得追求,应该以完全不同的方式来完成?

谢谢

C

1 个答案:

答案 0 :(得分:0)

执行此操作的方法有多种,在做出决定之前需要权衡各种风险。因为这是您的第一次,所以很容易犯错误(没有冒犯性,只是犯错),因此,对已经在生产中使用的数据库进行修改可能不是最好的主意。如果进行更改,可能会对其他网站造成负面影响,并且您可能很难弄清是什么原因导致更改或如何从更改中恢复。

您仍然可以(技术上)使用同一台实际的数据库服务器,并且只需使用另一台数据库,以便将其全部存储在同一位置。尽管您可能会遇到问题,具体取决于数据库的锁定方式,所以您将需要考虑对数据库的访问以及这种性质的事情。您也可以轻松地使用其他数据库并将所有内容保持独立。

使用同一数据库的缺点包括以下事实:无论您使用的哪个数据库都具有最大数量的连接和IO,因此,如果您的新站点成功,则可能导致其他站点在查询时间和事物方面变慢这种性质。

关于身份验证,您可以采取一些方法。如果使用单独的数据库,则可以从数据库中进行实际读取,以检查身份验证和权限以及该性质的内容。您还可以为旧网站创建API,然后只需使新网站使用该API进行身份验证即可。

总而言之,我认为将使用不同的数据库,并将旧的数据库用于只读目的。以后,您可能会创建一个API,两个应用程序都可以在此API之上运行以限制代码重复。不过,尝试合并可能会产生很大的问题,尤其是如果您是系统新手。

相关问题