Какова архитектура такого сервиса, как npm? - PullRequest
0 голосов
/ 01 декабря 2018

Я думаю о создании службы, которая хранит проекты кода (похоже на то, как работает реестр npm).Цель состоит в том, чтобы просто заархивировать несколько проектов кода и иметь возможность выполнять запросы к ним.Я пытаюсь выбрать подходящую архитектуру для этого проекта.Я рассматриваю два варианта

Вариант 1: сохранить код в файловой структуре, например,

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


Вариант 2: сохранить код в таблице базы данных

| project name | code | version |

Проблемы, с которыми я сталкиваюсь при каждой опции:

Опция 1:

  1. Возможность запуска запросов в файловой системе, например, как ссылаться на файловую систему на записи базы данных

Вариант 2:

  1. Хранение тысяч довольно больших (до 5 МБ) кодовых баз в записи базы данных
  2. Хранение кода с несколькими папками внутри записи базы данных

Буду признателен за любые мысли о том, как этого добиться

1 Ответ

0 голосов
/ 01 декабря 2018

Планируйте, какие запросы вам нужно выполнить.При этом вы можете понять, что такие вещи, как "grep работает лучше, чем WHERE body LIKE '%x%'". OTOH, SELECTs` в метаинформации, могут быть проще с подходом DB. Кроме того, рассмотрим гибрид: в базе данных есть только метаинформация, а коднаходится в какой-то древовидной структуре на диске.

Но выясните больше вопросов, которые вы будете задавать. И набросайте код (обе SQL и файловая система), необходимые для выполнения каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...