Дизайн базы счетов

Привет всем, я разрабатываю пакет учетных записей для своей компании, используя 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.

Теперь мой вопрос заключается в том, должен ли я вести все банковские счета в таблице счетов или у меня должна быть отдельная таблица для банковских счетов. Поскольку каждый банковский счет должен иметь свои соответствующие бухгалтерские книги.

Пожалуйста, помогите мне в разработке этой базы данных. Спасибо


person Programmer666    schedule 27.07.2013    source источник


Ответы (1)


Отличается ли BankAccount от Account? Если это совершенно другой объект, то он, вероятно, потребует свою собственную таблицу. Если это просто определенный вид Account, то может и не быть. В этом случае могут быть и другие варианты:

Например, вы можете добавить AccountType в таблицу Account, чтобы определить, какие из них являются типами BankAccount, а какие нет.

Или, если разница заключается не только в флаге типа и включает дополнительные столбцы данных на уровне учетной записи, которые применимы только к этому конкретному типу экземпляров Account, вы можете создать подтаблицу. Это будет таблица BankAccounts, но ее первичный ключ также будет внешним ключом к таблице Accounts, создавая принудительное отношение 0-1 между ними.

Затем при создании записи BankAccount вы сначала добавляете запись в таблицу Accounts, получаете сгенерированный ключ и используете этот ключ для добавления записи в таблицу BankAccounts.

person David    schedule 27.07.2013