帐户数据库设计
问题描述:
大家好,我正在为我的公司开发一个帐户包,使用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列
现在我的问题是我是否应该保持在账目表中的所有银行账户或者我应该有一个单独的链接银行账户表。 由于每个银行账户都应有其各自的分类账。
请帮我设计这个数据库。 谢谢
答
是BankAccount
不同于Account
?如果它完全是一个不同的实体,那么它可能会调用它自己的表。如果它只是种的Account
那么它可能不是。在这种情况下,可能有其他选项:
例如,您可以将添加到Account
表中,以确定哪些是BankAccount
类型,哪些不是。
或者,如果不同的是不仅仅是一个类型标志越来越包括适用只到特定类型Account
实例数据的额外帐户级别列,那么你可以做一个子表。它将是一个BankAccounts
表,但其主键也将是Accounts
表的外键,从而在两者之间建立强制的0-1关系。
然后,无论何时创建一个BankAccount
记录,您首先将一条记录添加到Accounts
表中,获取生成的密钥并使用该密钥向BankAccounts
表添加记录。