【问题标题】:New site based on data from another - the best system architecture?基于另一个数据的新站点 - 最好的系统架构?
【发布时间】:2019-04-09 22:02:05
【问题描述】:

事情是这样的:

  1. 我有一个网站,我们称之为目录。这是一个高级产品目录,里面有很多项目。它适用于基于 php 的 CMS,它不是由我完成的,并且是相当完整和复杂的系统。重要的是,它有用户认证系统和数据库中的大量用户。除非您登录,否则您无法访问大部分产品。

  2. 我想拥有另一个网站,我想自己建立这个网站。它将包含产品的一些附加数据、扩展下载部分和一些媒体。我想用 Django 构建它。

这个其他网站将大量使用 Catalogue 的数据库: - 它需要授权用户使用他们从目录中的登录名/通行证 - 它需要客户数据来定制他们的视图。

我没有构建更高级系统的丰富经验。有经验的程序员能告诉你怎么做吗?

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

正如我所提到的,我将使用 Catalogue 数据库中的用户数据来验证用户身份。这个想法是否存在一些安全问题?

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

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

谢谢,

C

【问题讨论】:

  • 这个新网站是为了学习 Django 和获得经验,还是为了提供一些新功能?此外,这将在同一个 URL 上,还是在不同的地方?我会尽快给出更长的答案。
  • 从简单的开始,首先用Python编写一个解析器,登录到外部网站,提取一些数据并保存到本地数据库中。如果你设法做到了,那么你可以考虑更大的 django 应用程序。

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


【解决方案1】:

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

您仍然可以(技术上)使用相同的实际数据库服务器,并且只需使用不同的数据库,以便将其全部存储在同一个位置。尽管取决于数据库的锁定方式,您可能会遇到问题,因此您需要考虑对数据库的访问和这种性质的事情。您还可以轻松地使用不同的数据库并将所有内容分开。

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

关于身份验证,您可以采取一些方法。在您使用单独的数据库的情况下,您可以从数据库执行实际读取以检查身份验证和权限以及此类性质的事情。您还可以为旧网站创建一个 API,然后让新网站使用该 API 进行身份验证。

总而言之,我的意见是使用不同的数据库,并将旧数据库用于只读目的。稍后,您可能会创建一个 API,两个应用程序都可以在其上工作以限制代码重复。但是,尝试合并可能会带来很大的问题,特别是如果您是系统新手。

【讨论】:

  • 谢谢,这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多