database - 我的数据库设计足够好吗?

标签 database database-design entity-relationship

我有一个为库存管理公司创建数据库的问题陈述。商业模式基本上是他们的客户给他们钱,然后公司将他们投资于股票投资者。一些业务规则如下。

  1. 客户可以拥有多个帐户。

  2. 有 2 种类型的帐户:起始帐户事件帐户

  3. 投资有 2 种类型:本地国际。客户可以选择下一步的投资类型。

  4. 客户有一个顾问和一个经纪人。然而,公司允许客户先注册而不提供这些信息。稍后当客户提供这些信息时,他的记录将被更新。公司将自行决定分配哪个经纪人

  5. 客户端“可能”有一个子代理

  6. 客户将向其帐户贷记和借记资金。

  7. 投资后,公司将使用新的投资值(value)和现金值(value)更新客户的帐户。应单独监测这些值。

  8. 客户一旦向公司提供资金,就会拥有一个启动帐户。一旦公司向他们分配了经纪人客户就会拥有一个活跃帐户

下面是我的 ER 图。 enter image description here

我知道这是一项耗时的任务,但如果有人能告诉我我的设计“有多好”,以及是否需要任何更改,我真的很感激。谢谢!

最佳答案

回答一些问题可能会让我们做出更好的设计:

  1. 有一个名为 client_account 的关联表告诉我 一个帐户可以在多个客户之间共享。如果不, 这可能是多余的。与经纪人实体的关系可以是 在账户表中完成。
  2. 当且仅当 account_typeinvestment_type 已预定义 静态值如:

    Starting account, Active account and Local, International

    不需要将它们定义为表,您可以使用域 对象(枚举)。

  3. 是否是活跃账户可以是账户表的 bool 属性,而不是 单独的表格。
  4. 如果交易(借方和贷方)可以在账户之间进行(双重记账),那么 您需要有一个 transaction_detail 表作为子表 交易表。帐户关系需要在 transaction_detail 表,不在 transaction 表中。

关于database - 我的数据库设计足够好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25807857/

相关文章:

database - 在数据库中存储 bool 值的最佳数据类型是什么

mysql - MyISAM 与 InnoDB

ios - iOS 中的大型 SQLITE 数据库

mysql:选择所有被通知的人

mysql - 制作多类别项目数据库结构

mysql - 表设计-Mysql

postgresql - 在键控时间范围内查询排序值的索引

sql - 一对多关系表

sql - 如何在 Power Designer 15 中从 ER 图中生成 SQL 表?

database - ER图和EER图的区别