哪个 architure/mindset 适合构建用户可以像 Azure 一样购买功能的 Web 应用程序?
Which architure/mindset will be suitable for building a web app that users can purchase features like Azure does?
我们最近制定了一项新的业务规则,要求我们的用户为我们的 Web 应用程序中的各个模块付费。
因此,我们在应用程序中构建的所有功能都不会适用于所有用户。一些用户可以选择添加他们想要的功能。
我已经尝试研究 architecture/mindset 如何处理这个开发。
如果我能知道如何开始使用它……我将不胜感激。
我使用 .NET Web 应用程序和 Microsoft SQL 服务器。
谢谢。
首先列出 "objects" 或您需要跟踪的事情。
- 用户
- 用户名
- 全名
- 能驾驭他的五官吗?你说不是所有用户都可以
- ...
- 特点:
- featureid
- 描述
- 费用
- ...
- UserHasFeature
- 一个 link 一个用户和一个特征之间
- 每一行是userid,featureid
使用这个你可以查询哪个用户有什么特征。或者列出有权访问特定功能的用户。
在您的网络应用中,您将需要管理员功能:
- 用户管理:添加、删除、修改、列表
- 功能:添加、删除、修改、列表
- link管理:添加、删除、列表
- 报告:您想要的任何报告
和用户函数:
- 用户:登录、修改、重置密码、查看所有功能、查看用户已有的功能、添加新功能、删除功能
- 报告:用户正在使用的功能的总成本,其他
现在这是一个非常快速的初稿。还缺很多要求:
- 批准工作流程:用户可以在没有 X 批准的情况下修改他的功能吗?
- 付款方式
- 内部计费的项目编号
- 成本结构:每月一次,...?
- 管理者可以查看自己管理的员工的特征吗?
- ...
记住这一点:
- 从项目中的对象开始。这些变成 tables.
- 对象的特征成为您 table 中的字段。
- 如果相同的特征出现在许多具有相同值的对象 table 中,请考虑为这些对象创建一个新的 table。前任。在地址中,您不会将国家/地区值保留为简单的 VARCHAR 字段。您会 link 到另一个具有国家/地区值的 table。
- 列出关系。这些成为外键,或 link tables.
- 拆分对象。所以至少应用1NF、2NF和3NF。对于大多数应用来说已经足够了。 (NF == 范式).
- 每个 table 和 link 都需要管理员页面 (CRUD)
- 用户对他们的功能的看法有限。
这是一个很大的主题,我可以继续下去,但这可以让你入门。
玩得开心!
我们最近制定了一项新的业务规则,要求我们的用户为我们的 Web 应用程序中的各个模块付费。 因此,我们在应用程序中构建的所有功能都不会适用于所有用户。一些用户可以选择添加他们想要的功能。 我已经尝试研究 architecture/mindset 如何处理这个开发。 如果我能知道如何开始使用它……我将不胜感激。
我使用 .NET Web 应用程序和 Microsoft SQL 服务器。
谢谢。
首先列出 "objects" 或您需要跟踪的事情。
- 用户
- 用户名
- 全名
- 能驾驭他的五官吗?你说不是所有用户都可以
- ...
- 特点:
- featureid
- 描述
- 费用
- ...
- UserHasFeature
- 一个 link 一个用户和一个特征之间
- 每一行是userid,featureid
使用这个你可以查询哪个用户有什么特征。或者列出有权访问特定功能的用户。
在您的网络应用中,您将需要管理员功能:
- 用户管理:添加、删除、修改、列表
- 功能:添加、删除、修改、列表
- link管理:添加、删除、列表
- 报告:您想要的任何报告
和用户函数:
- 用户:登录、修改、重置密码、查看所有功能、查看用户已有的功能、添加新功能、删除功能
- 报告:用户正在使用的功能的总成本,其他
现在这是一个非常快速的初稿。还缺很多要求:
- 批准工作流程:用户可以在没有 X 批准的情况下修改他的功能吗?
- 付款方式
- 内部计费的项目编号
- 成本结构:每月一次,...?
- 管理者可以查看自己管理的员工的特征吗?
- ...
记住这一点:
- 从项目中的对象开始。这些变成 tables.
- 对象的特征成为您 table 中的字段。
- 如果相同的特征出现在许多具有相同值的对象 table 中,请考虑为这些对象创建一个新的 table。前任。在地址中,您不会将国家/地区值保留为简单的 VARCHAR 字段。您会 link 到另一个具有国家/地区值的 table。
- 列出关系。这些成为外键,或 link tables.
- 拆分对象。所以至少应用1NF、2NF和3NF。对于大多数应用来说已经足够了。 (NF == 范式).
- 每个 table 和 link 都需要管理员页面 (CRUD)
- 用户对他们的功能的看法有限。
这是一个很大的主题,我可以继续下去,但这可以让你入门。
玩得开心!