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

上表存储 Accounts/Ledgers 。

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)

上面两个表存储交易。上面两个表由 VoucherNo 列链接

现在我的问题是我是否应该在账户表中维护所有银行账户,或者我应该为银行账户设置一个单独的表。因为每个银行账户都应该有各自的分类账。

请帮助我设计这个数据库。谢谢

4

1 回答 1

1

a 与aBankAccount不同Account吗?如果它完全是一个不同的实体,那么它可能会调用它自己的表。如果它只是某种那么Account它可能不会。在这种情况下,可能还有其他选择:

例如,您可以向表中添加一个AccountTypeAccount确定哪些是BankAccount类型,哪些不是。

或者,如果差异不仅仅是一个类型标志,并且包括适用于该特定类型Account实例的其他帐户级数据列,那么您可以制作一个子表。这将是一个BankAccounts表,但它的主键也将是表的外键Accounts,从而在两者之间创建一个强制的 0-1 关系。

然后,每当创建BankAccount记录时,您首先将记录添加到Accounts表中,获取生成的键,然后使用该键将记录添加到BankAccounts表中。

于 2013-07-27T19:06:28.383 回答