2016-08-13 73 views
0

everyone。 我现在的目标是为互联网提供商的基于web应用的控制系统开发数据库结构。这是一项具有以下要求的学习任务:数据库模式,包含账户信息

管理员在系统中注册订户。系统提供服务列表(电话,互联网,有线电视,IP电视等)和订购计划为每项服务。 订户可以为每个服务选择一个或多个服务,并使用特定的订购计划。订户有一个账户,并可以 补充余额。帐户中的资金将被移除,具体取决于所选的订阅计划。如果账户资金不足,系统会阻止用户。

系统管理员有权: 添加,删除或编辑订阅计划; 注册,阻止或取消阻止用户。

我认为,用粗体突出显示的所有单词都被认为是实体。

我制定如下方案:

schema

而且现在我有几个问题:

  1. 是否确定对用户和账户不同的表,或者他们应该合并(一个订户只能拥有一个账户)?
  2. 当前余额应作为列存储在账户表中,还是应该每次计算?
  3. 可以只有ID列的表格吗?

任何批评和建议将不胜感激。

+0

请格式化您的问题列表。 – leonidv

回答

0
  1. 它们必须合并,因为您的模型允许链接“一个订户 - 多个账户”。

  2. 这取决于您的使用情况。要进行优化,您可以在incoming_payment和更新subscriber.balance上添加触发器。所以你可以很快建立报告。

  3. 仅包含生成的ID的表格看起来很糟糕。在您的模型中,服务必须具有属性类型(电话,互联网,有线电视,IP电视等)。