2014-09-12 71 views
1

我有一個問題陳述來爲Stock Management公司創建一個數據庫。商業模式基本上是他們的Clients給他們錢,公司去投資他們在Stock Borkers。一些業務規則如下。我的數據庫設計夠好嗎?

  1. 客戶端可以有多個帳戶。

  2. 有兩種類型的帳戶,Starting accountActive account

  3. 有兩種類型的投資,LocalInternational。客戶可以選擇他們前進的投資類型。

  4. 客戶端有一個Adviser和一個Broker。但是,公司允許Client首先註冊而不提供這些信息。之後當Client提供這些信息時,他的記錄將被更新。公司自行決定分配哪些Broker

  5. Client「可能」有一個Sub Agent

  6. Client將貸記和借記到他的帳戶的錢。

  7. 一旦投資,公司將用新的投資價值和現金價值更新客戶的賬戶。這些值應該單獨監測。

  8. Client只要他向公司提供資金就會有Starting AccountClient只要公司爲其分配Broker,就會有Active Account

以下是我的ER圖。 enter image description here

我知道這是一個需要時間的任務,但我真的很感謝,如果有人能告訴我「我的設計有多好」,以及是否需要改變。謝謝!

回答

1

可以回答一些問題使我們更好的設計:

  1. 有關聯的表稱爲client_account告訴我 ,一個帳戶可以多個客戶端之間共享。如果不是, 可能是多餘的。與經紀人實體的關係可以在賬戶表中完成 。
  2. 當且僅當account_typeinvestment_type已預定義 像靜態值:

    開始考慮,主動交代和地方,國際

    ,將沒有必要將它們定義爲表,您可以使用域 對象(枚舉)。

  3. 作爲活動賬戶可以是賬戶表的boolaen屬性,而不是 單獨的表。
  4. 如果交易(借方和貸方)可以在賬戶之間完成(雙重會計),那麼 您需要有一個transaction_detail作爲子表 transaction表。賬戶關係需要在 transaction_detail表中完成,不在transaction表中。
+0

感謝您的回覆。關於你的觀點1,有沒有這張桌子是錯誤的?賬戶不共享,這是'股票賬戶'而不是銀行賬戶。 – 2014-09-13 14:25:33

+0

如果我們刪除client_account表並在帳戶表中擁有客戶端FK,會發生什麼情況? – 2014-09-13 14:30:03

+0

什麼都不會發生。它仍然會工作。我想了一個新的'client_account',因爲它很容易搜索,並可能有助於解決將來的任何增加? – 2014-09-13 14:38:30