托管计费/订阅系统的设计数据库

时间:2014-04-04 17:10:08

标签: database-design

我正在为托管应用程序创建一个结算系统..

所以,基本上,

用户可以购买托管和域名,或者可以购买云并在那里创建自己的服务器。

还应该有插件。

Addon可以应用于任何类型的包。因此,用户可以从云中向服务器添加“服务器管理”。或者为整个云添加“云管理”..

托管和域名是预付费的东西..所以用户提前付款..但云 - 用户在云中注册然后可以创建服务器 - 然后我们每月为云使用(不是每个服务器)发票一次。

这是我的数据库设计:http://dbdsgnr.appspot.com/app#agdkYmRzZ25ycg8LEgZTY2hlbWEY-pK0BAw

你能否在这里评论它有什么不好以及如何改进它?

值得一提的是:云和插件是按使用时间支付的,所以如果插件活动2天,然后用户将其删除 - 那么我们应该只为用户开2天发票..

1 个答案:

答案 0 :(得分:0)

我可以立即看到的一个问题是插件。用户与他/她选择的插件之间没有任何关联。如果您想知道用户选择了哪些插件,则看起来您无法满足该查询。

此外,我无法在您的设计中看到包和插件之间的一对多关系的概念。一个包可能有多个插件,你需要对其进行建模。

这让我想到了下一点,订单表。那里你只有packageId。但是你没有抓住用螺栓固定在那个包装上的插件。这是一个缺陷,因为您将无法分辨哪个客户订购了包或反向查询的特定插件。所以你需要重新设计你设计的那部分。

另一个问题:发票通常与orderId相关联。发票表上不存在orderId。

如果您更新模型,我会在稍后再次查看。希望它有所帮助。