2013-07-27 135 views
0

大家好,我正在爲我的公司開發一個帳戶包,使用Sql Server 2008和VB.Net。帳戶數據庫設計

我需要一些關於數據庫設計的幫助。

我有以下表

AccountsGroupMaster 

GroupId int 
GroupName nvarchar(50) 
ParentGroupId int 
CatId int 
PrimaryGroup bit 
CreatedByUser nvarchar(50) 
CreatedOn datetime 

上表將存儲在賬戶組,例如:流動資產等

Accounts Table 

AccCode nvarchar(6) 
AccountName nvarchar(30) 
ParentAcc nvarchar(6) 
GroupId int 

上表存儲賬戶/分類帳。

VoucherMain 

VoucherNo bigint 
VoucherDate datetime 
DebitCredit int (0 for Credit 1 for Debit) 
AccCode nvarchar(6) (Account Code to be debited/Credited) 
UserID nvarchar(30) 

VoucherDetails 

VoucherNo bigint 
SlNo int 
AccCode nvarchar(6) (Debit this account if account in VoucherMain credited/ Credit this account if account in VoucherMain Debited) 
Amount decimal(18, 2) 
Narration nvarchar(MAX) 

以上兩個表存儲transactions.The以上兩代表由VoucherNo列

現在我的問題是我是否應該保持在賬目表中的所有銀行賬戶或者我應該有一個單獨的鏈接銀行賬戶表。 由於每個銀行賬戶都應有其各自的分類賬。

請幫我設計這個數據庫。 謝謝

回答

1

BankAccount不同於Account?如果它完全是一個不同的實體,那麼它可能會調用它自己的表。如果它只是Account那麼它可能不是。在這種情況下,可能有其他選項:

例如,您可以將添加到Account表中,以確定哪些是BankAccount類型,哪些不是。

或者,如果不同的是不僅僅是一個類型標誌越來越包括適用到特定類型Account實例數據的額外帳戶級別列,那麼你可以做一個子表。它將是一個BankAccounts表,但其主鍵也將是Accounts表的外鍵,從而在兩者之間建立強制的0-1關係。

然後,無論何時創建一個BankAccount記錄,您首先將一條記錄添加到Accounts表中,獲取生成的密鑰並使用該密鑰向BankAccounts表添加記錄。