哪种架构/思维模式适合构建用户可以像 Azure 一样购买功能的 Web 应用?



我们最近有一个新的业务规则,要求我们的用户为我们Web应用程序中的各个模块付费。 因此,我们在应用程序中构建的所有功能并不适用于所有用户。某些用户可以选择添加所需的功能。 我尝试研究如何进行这种开发的架构/思维方式。 如果我能得到一个关于如何开始的想法..我将不胜感激。

我使用.NET Web应用程序,Microsoft SQL Server。

谢谢。

首先列出您需要跟踪的"对象"或事物。

  • 用户
    • 用户标识
    • 全名
    • 可以管理他的功能吗? 你说不是所有用户都可以
  • 特征:
    • 功能标识
    • 描述
    • 成本
  • 用户具有功能
    • 用户与功能之间的链接
    • 每一行都是用户ID,功能ID

使用它,您可以查询哪个用户具有什么功能。或者列出有权访问特定功能的用户。

在 Web 应用程序中,您将需要管理员功能:

  • 用户管理:添加、删除、修改、列出
  • 功能:添加,删除,修改,列出
  • 链接管理:添加、删除、列出
  • 报告
  • :您想要的任何报告

和用户功能:

用户
  • :登录、修改、重置密码、查看所有功能、查看用户已有的功能、添加新功能、删除功能
  • 报告:用户使用的功能的总成本,其他

现在这是一个非常快速的初稿。 有很多缺失的要求:

  • 审批工作流:用户是否可以在没有 X 批准的情况下修改其功能?
  • 付款方式
  • 内部计费的项目编号
  • 成本结构:每月、一次性、...?
  • 经理可以查看他管理的员工的特征吗?

要记住这一点:

  • 从项目中的对象开始。 这些将成为表。
  • 对象的特征将成为表中的字段。
  • 如果具有相同值的许多对象表中出现相同的特征,请考虑为这些对象表创建新表。 例如,在地址中,您不会将国家/地区值保留为简单的 VARCHAR 字段。 您将链接到另一个包含国家/地区值的表。
  • 列出关系。 它们将成为外键或链接表。
  • 拆分对象。 因此,至少应用1NF,2NF和3NF。 对于大多数应用程序来说,这已经足够了。(NF == 正常形式(。
  • 每个表和链接都需要管理员页面 (CRUD(
  • 用户仅具有与其功能相关的有限视图。

这是一个很大的话题,我可以继续说下去,但这可以帮助你开始。

玩得愉快!

相关内容

最新更新