Какой вид архитектуры / мышления подойдет для создания веб-приложения, в котором пользователи могут приобретать такие функции, как Azure? - PullRequest
0 голосов
/ 09 февраля 2020

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

Я работаю с NET веб-приложениями и Microsoft SQL Сервером.

Спасибо.

1 Ответ

0 голосов
/ 10 февраля 2020

Сначала перечислите, какие «объекты» или вещи нужно отслеживать.

  • Пользователи
    • ИД пользователя
    • ФИО
    • его особенности? Вы сказали, что не все пользователи могут
    • ...
  • Особенности:
    • featureid
    • описание
    • стоимость
    • ...
  • UserHasFeature
    • ссылка между пользователем и функцией
    • каждая строка - идентификатор пользователя, featureid

С его помощью вы можете запросить, у какого пользователя есть какая функция. Или перечислите пользователей, которые имеют доступ к определенной функции.

В вашем веб-приложении вам потребуются функции администратора:

  • управление пользователями: добавление, удаление, изменение, список
  • функция: добавить, удалить, изменить, список
  • управление ссылками: добавить, удалить, список
  • Отчеты: любые отчеты, которые вы хотите иметь

И пользовательские функции:

  • пользователь: войти, изменить, сбросить пароль, просмотреть все функции, просмотреть функции, которые уже есть у пользователя, добавить новую функцию, удалить функцию
  • отчеты: всего стоимость функций, которые использует пользователь, другие

Теперь это очень быстрый первый набросок. Существует множество пропущенных требований:

  • рабочий процесс утверждения: может ли пользователь изменять свои функции без одобрения X?
  • способы оплаты
  • номер проекта для внутреннего выставление счетов
  • структура затрат: ежемесячно, один раз, ...?
  • менеджеры могут просматривать функции сотрудников, которыми он управляет?
  • ...

Это нужно помнить:

  • Начните с объектов в вашем проекте. Они становятся таблицами.
  • Характеристики объектов становятся полями в ваших таблицах.
  • Если во многих таблицах объектов появляются одинаковые характеристики c с одинаковыми значениями, рассмотрите возможность создания новой таблицы для эти. Ex. в адресе вы не оставите значение страны в виде простого поля VARCHAR. Вы бы связались с другой таблицей со значениями стран.
  • Перечислите отношения. Они становятся внешними ключами или таблицами ссылок.
  • Разделите ваши объекты. Так что применяйте 1NF, 2NF и 3NF как минимум. Этого достаточно для большинства приложений. (NF == Обычная форма).
  • Для каждой таблицы и ссылок требуются страницы администратора (CRUD)
  • Пользователи имеют ограниченное представление, касающееся только их функций.

Это огромная тема, я мог бы go снова и снова, но это может помочь вам начать.

Веселитесь!

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