5

我正在为“银行”创建一个数据库,只是不确定我将帐户附加到客户的方法是否最有效。以下是一些企业规则:

- 有两种类型的账户(活期和储蓄)

- 每个帐户都有一个字段:余额、上次访问日期

-往来账户有透支

-储蓄账户有利率

-客户可以拥有任意数量的帐户

-一个帐户可以“订阅”无限的人

我只是不确定最好的方法是否只是将帐户表中的利率和透支设置为空,如果它是错误的帐户类型。

抱歉,如果这个问题没有很好地提出(我在这里打破了我的 stackoverflow 童贞)。此外,这里是迄今为止创建的 ER 图的链接:https ://drive.google.com/file/d/0BwKmjTsIbwP0SE9Xbk1ycnkyV0E/edit?usp=sharing

对不起,我不能直接在这里发布图片,这只是因为我没有代表......

提前致谢!

4

1 回答 1

16

您获取给定的信息,并将数据规范化为关系。这就是您使用关系数据库的原因。

因此,让我们从客户开始。我们将创建一个客户表。通常,表名是单数的。

Customer
--------
Customer ID
Customer name
Customer address
...

如您所见,Customer 表中的所有数据都是关于客户的。

接下来,我们将创建一个 Account 表。

Account
-------
Account ID
Account Type ID
Account balance
Account interest rate
Account overdraft
Account last access time stamp

Account 表中的所有数据都来自您的需求声明。对于没有利息的账户,利率设置为零。对于没有透支的帐户,透支设置为零。

接下来,我们将创建一个 Account Type 表。

Account Type
------------
Account Type ID
Account Type

数据将是 (0, Checking) 和 (1, Savings)。使用账户类型表,您可以轻松添加新的账户类型,例如(2,存款证明)。

接下来,即使你没有提到它,我们也会创建一个 Transaction 表。您需要它才能打印月度报表。

Transaction
-----------
Transaction ID
Transaction time stamp
Transaction amount
Account ID

好的,我们已经为银行设置了所有的实体类型表。现在,让我们设置关系表。

客户和帐户具有多对多关系。一个客户可以有很多账户,一个账户可以有很多客户。

因此,让我们创建一个客户帐户表。

Customer Account
----------------
Customer ID
Account ID
Customer Account creation time stamp

主(集群)键是(客户 ID、帐户 ID)。您还需要(帐户 ID、客户 ID)上的唯一索引

我相信我们已经完成了创建表格。

  • 帐户具有帐户类型。

  • 一个客户可以有多个帐户。

  • 一个帐户可以有许多客户。

  • 一个帐户可以有许多交易。

  • 一笔交易过账到一个账户。

于 2014-05-22T19:33:15.673 回答