gpt4 book ai didi

database-design - 基于订阅的服务的数据模型

转载 作者:行者123 更新时间:2023-12-04 18:21:51 24 4
gpt4 key购买 nike

如果您愿意,我正在尝试对基于订阅的服务提供商进行建模并遇到“ Steam 锁”的情况。我定义了以下模型,其中用户订阅了各种服务的包 - 每个包级别包含一个或多个服务:

+---------------+     +-----------------+      +----------+
| Packages |<--- | PackageServices | ---> | Services |
+---------------+ +-----------------+ +----------+
^
|
+---------------+ +----------+
| Subscriptions |---> | Users |
+---------------+ +----------+

但是,每个服务都有自己的用户定义设置 - 每个服务可能有一个关联的其他实体数组来存储服务数据。我可以为特定用户处理每个服务的数据实体,但我对设置表感到困惑。我曾想过创建一个键入用户和服务的“ServiceSettings”表格,但这似乎有点奇怪。这种方法给我留下了以下问题:
  • 如果他们升级套餐并获得新服务怎么办?
  • 如何将新的 ServiceSettings 设置或限制为仅用户已订阅的服务?
  • 如果我添加新服务怎么办?

  • 我是在正确的轨道上,还是我似乎缺少另一种选择?

    提前致谢!

    最佳答案

    我喜欢你的服务设置 ;但仅用于定义每个服务的设置列表。这些服务设置的值必须存在于 中。订阅服务设置 用户服务设置 取决于多个用户是否可以共享订阅但具有不同的服务设置。添加新服务时,您必须提供默认值,以便在添加时;用户首先获得这些默认值;但可以更改它们以适应他们的需要。和/或用户需要某种关于新服务设置的通知。

    所以直接解决问题:

    如果他们升级套餐并获得新服务怎么办?
    使用 userServicesSettings 保留包设置,当他们订阅具有这些设置的包时,使用它们,否则忽略它们;但保留它们以供将来更改服务(又是一个业务问题)

    如何将新的 ServiceSettings 设置或限制为仅用户已订阅的服务?
    这只是订阅、包、包服务和服务设置之间的连接。 (除非您想维护软件包版本;但这是完全不同的思路)

    如果我添加新服务怎么办? 因此,您添加了新的 serviceSettings,UserServiceSettings 是默认设置(或向用户提供通知,以便他们可以填写他们想要的内容,或两者兼而有之),现在您有了所需的详细信息。默认值在动态环境中很有用,以防人们不做出您需要他们做出的决定。默认值说,除非你改变它,否则你会得到这个;导致人们接受违约或采取行动。

    关于database-design - 基于订阅的服务的数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490919/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com