像npm这样的服务的架构是什么?

时间:2018-11-30 21:48:33

标签: mysql database database-design architecture

我正在考虑构建一个存储代码项目的服务(类似于我想象的npm注册表的工作方式)。目标只是归档多个代码项目并能够在它们上运行查询。我正在尝试确定适合该项目的体系结构。我正在考虑两种选择

选项1:将代码存储在文件结构中,例如

project x
  |- ver 0.1
  |- ver 0.2
  |- ver 0.3


 选项2:将代码存储在数据库表中

| project name | code | version |

我看到的每个选项的问题都是

选项1:

  1. 能够在文件系统上运行查询,例如如何将文件系统引用到数据库记录

选项2:

  1. 在数据库记录中存储数千个相当大(最多5MB)的代码库
  2. 在数据库记录中存储具有多个文件夹的代码

任何关于如何实现这一目标的想法将不胜感激

1 个答案:

答案 0 :(得分:0)

计划需要运行的查询。这样,您可能会意识到,使用db方法可能更容易使诸如“ grepWHERE body LIKE '%x%'". OTOH, SELECTs`更适合元信息。此外,还可以考虑混合使用:数据库中仅元信息;同时代码位于磁盘上的某些树形结构中。

但是要弄清楚您将要问的更多问题。并草绘执行每个代码所需的代码(SQL和文件系统)。