2016-12-20 3 views
0

Добрый вечер,Кэшировать результаты запроса, делать или не делать, перенасыщать или повышать производительность?

Мой проект использует стек MEAN и имеет несколько коллекций и одну базу данных, из которой извлекаются данные.

Думая о том, как пользователь будет взаимодействовать с webapp, который я собираюсь построить, я решил, что моя идея приложения довольно пустая.

Теперь приложение размещено на частном сервере в локальной сети, что делает его очень быстрым в запросах, и на нем работает экспресс-сервер.

Приложение составлено вокруг управления сотрудниками, услуг и мест, где услуги могут иметь место. Просто описывая, так что есть идея.

«Кольцо для управления всеми их» - это почти первая коллекция, услуги, которая запускает ядро ​​приложения. Есть страница, которая позволяет вам добавлять строки, по одному для каждой службы, которую вы намереваетесь делать, и внутри этой строки вы выбираете сотрудника для «запуска службы» на основе характеристик, которые имеет этот сотрудник, что означает, что если служба посвящена преподаванию фортепиано , сотрудник должен знать, как играть на фортепиано. Эта же логика работает для остальных «столбцов», которые будут создавать мою строку в полной службе, признанной приложением как таковым.

Теперь, что я сказал выше, это довольно много информации из базы данных и логики, чтобы сделать модель приложения полученной информацией и что-то с ней построить.

Мой вопрос или, скорее, мои сомнения вытекают из того, как я представлял себе запрос на работу для каждого поля, которое является частью строки службы. Сейчас я думаю о запросе базы данных (mongodb) каждый раз, когда мне нужно выбрать значение для поля, но если вы считаете, что я могу добавить 100 строк, каждая из которых будет иметь 10 полей, для большого количества запросов к базе данных. Теперь это не кажется изящным и не умным для меня, но я не могу придумать лучшего решения или идеи.

Любые предложения или эмпирическое правило для MEAN newb?

Заранее благодарен!

EDIT: ответьте на вопрос, который был необходим.

Нет, база данных довольно статична (если пользователь не желает вставлять новое значение, скажем, новый сотрудник, который может выполнять услугу). Это не произойдет очень часто. Учитывая запрос, который вернет всех сотрудников для данной службы, эти сотрудники (в идеале) будут находиться внутри ассоциативного массива, с возможностью быть «pop'd» от него, если они выбраны для службы, что делает их недоступными для дальнейших услуг (потому что один человек не может одновременно выполнять две услуги). Надеюсь, я был ясен, я, конечно, не лучший человек, который объяснял себя.

+0

Для осветления , вы рассматриваете обновление базы данных каждый раз, когда поле в форме HTML обновляется или я не понимаю? –

+0

Нет, база данных довольно статична (если пользователь не желает вставлять новое значение, скажем, нового сотрудника, который может выполнить услугу). Это не произойдет очень часто. Учитывая, что запрос будет возвращен всем сотрудникам для данной службы, эти сотрудники (в идеале) будут находиться внутри ассоциативного массива, с возможностью быть «pop'd» из него, если они выбраны для службы, что делает их недоступными для дополнительные услуги (поскольку один человек не может одновременно выполнять две услуги). Надеюсь, я был ясен, я, конечно, не лучший человек, который объяснял себя. – mnemosdev

+0

Насколько я понимаю, каждый пользователь базы данных должен иметь список услуг, которые они могут выполнять. Каждая служба должна иметь список сотрудников, доступных для выполнения этой услуги. –

ответ

0

Он будет запрашивать базу данных о том, кто доступен, когда пользователь смотрит на эту страницу, и другой запрос, если пользователь назначает сотрудника для выполнения службы.

В целом 1 запрос на загрузку страницы и другой при отправке данных является стандартным.

Вы хотите только бы использовать в кэш-памяти для

  1. частых запросов, но большинство баз данных будет делать это автоматически.
  2. значения, которые часто изменяются нравится:
    1. Сколько пользователей подключены
    2. Последний запрос отправлен
    3. то, что происходит практически каждый запрос (> 95%)