CouchDB Design для POS-приложений - PullRequest
0 голосов
/ 24 января 2019

Я работаю над созданием приложения для POS (Point of sale), используя couchdb с angular. Так как я новичок в мире NoSQL. Нужно руководство, как спроектировать систему.

Это должно быть облачное приложение, в котором входящий в систему пользователь может создавать компании, и у каждой компании есть n местоположений.

В смысле реляционных баз данных мой дизайн базы данных выглядит следующим образом.

  • При входе в мое приложение имя пользователя и пароль проверяются по лицензии db. Если они действительны, приложение свяжется с их собственной компанией db.
  • Всякий раз, когда пользователь создает новую компанию, создается новая база данных, все ее местоположения, счета, платежи находятся в их собственной базе данных.
  • Лицензия БД, отвечающая за учетные записи пользователей, платежи, их план и уровень безопасности (к какому экрану они могут обращаться / редактировать).
  • Приложение имеет автономную поддержку с использованием PouchDB. где соответствующие сведения о местоположении загружаются в браузер пользователя и синхронизируются с базой данных сервера.

Вопросы:

  1. Можно ли создать базу данных для каждой компании.
  2. Если пользователь хочет работать в автономном режиме, он может синхронизировать только собственные данные о местоположении (отфильтрованная репликация), если он хочет получить доступ к другим данным о местоположении, приложение должно подключиться к облачной БД. Возможно ли это?
  3. Я хочу, чтобы один и тот же код запрашивал / вставлял данные в couchdb & PouchDB. Возможно ли это?
  4. Является ли поддержка комплексных отчетов couchdb map-lower / mango query
  5. Является ли Angular + Couchdb достаточным или мне нужна какая-либо серверная инфраструктура. У меня сейчас нет сторонней аутентификации.
  6. Как вышеуказанный дизайн реляционной базы данных должен быть реализован в coub db

Что еще я должен думать об этом дизайне программного обеспечения

1 Ответ

0 голосов
/ 24 января 2019
  1. Да. Один общий дизайн для CouchDB - иметь базу данных для каждого пользователя. Разумно по одному на компанию.
  2. CouchDB поддерживает фильтрованную репликацию. Вы можете настроить отфильтрованную репликацию для документов пользователя в экземпляре локальной базы данных (PouchDB или CouchDB)
  3. PouchDB позволяет подключаться к CouchDB. По сути, у вас может быть библиотека PouchDB, которая выполняет все ваши бизнес-операции. Вам нужно всего лишь изменить адаптер базы данных для облачной или клиентской базы данных.
  4. Map / Reduce довольно прост. Позволяет индексировать документы и запрашивать их по ключам. Вы можете легко изменять значения в своих индексах, а также использовать функции Reduce. Манго-запросы более гибкие. Немного похоже на MongoDB.
  5. Возможно, в конечном итоге вам понадобится прикладной уровень, но можно использовать только CouchDB.
...