Подтвердить что ты не робот

Схема схемы базы данных для системы учета двойной записи?

Кто-нибудь знает или имеет какие-либо ссылки на сайты, описывающие детали проектирования схемы базы данных для системы учета двойных записей?

Я нашел кучу статей, но не очень хорошо объяснил. Был бы признателен, если бы кто-нибудь мог мне помочь в этом.

4b9b3361

Ответ 1

Здесь вы можете найти полезную ссылку:

http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html

Обновлено: Альтернативные ссылки (как оригинальные, кажется, сломаны):

Ответ 2

  • создайте следующие таблицы: account, transaction, lineitem, contact. контакт может быть клиентом, поставщиком или сотрудником. чтобы все было просто, мы не будем оставлять таблицу account_type, таблицу contact_type и т.д.

  • идентифицируйте отношения между таблицами и настройте их.

a) контакт может иметь много транзакций, но каждая транзакция может иметь только один контакт (отношение "один ко многим" )

b) у учетной записи может быть много транзакций, и одна транзакция может повлиять на многие учетные записи; lineitem - таблица соединений между таблицей транзакций и таблицей счетов (отношение "многие ко многим" )

c) транзакция может иметь много позиций, но каждая позиция должна относиться к одной транзакции. У нас есть следующая схема (отношение "один ко многим" ):

КОНТАКТ > --- ОПЕРАЦИЯ --- < LINE_ITEM > --- ACCOUNT

3 Добавьте соответствующие поля в каждую таблицу. Контакт (contactID, имя, addr1, addr2, город, штат, почтовый индекс, телефон, факс, электронная почта и т.д.). Транзакция (transactionID, date, memo1, contactID, ref, line_itemID. Line_item (line_itemID, transactionID, accountID, amount, memo2). Учетная запись (accountID, line_itemID, account_name, account_type).

4 Например, чтобы добавить новую транзакцию в базу данных, добавьте новую запись в таблицу транзакций и заполните поля, выберите имя контакта, введите дату и т.д. Затем добавьте новые дочерние записи в запись родительской транзакции для каждой затронутой учетной записи. Каждая запись транзакции должна содержать как минимум две дочерние записи (в системе учета с двойным входом). Если я купил немного сыра за наличные в размере 20 долларов США, добавьте дочернюю запись в запись транзакции. В дочерней записи выберите Cash cash и запишите -20.00 (отрицательный) в поле количества. Добавьте новую дочернюю запись, выберите учетную запись "Продовольственные товары" и запишите 20.00 (положительный) в поле количества. Сумма дочерних записей должна быть равна нулю (т.е. 20.00 - 20.00 = 0.00). Создайте столько новых транзакций, сколько необходимо.

5 Создайте отчеты в базе данных на основе данных, хранящихся в приведенных выше таблицах. Запрос, чтобы дать мне все записи в базе данных, организованные таким образом, чтобы дочерние записи позиции транзакции группировались по учетной записи, сортировались по дате, а затем по идентификатору транзакции. Создайте поле вычисления, которое дает текущее количество полей суммы в транзакционных записях line_items и любых других полях расчета, которые вы считаете необходимыми. Если вы предпочитаете показывать суммы в дебетовом/кредитном формате, создайте два поля калькуляции в запросе базы данных, у которых есть одно поле с дебетом, а другое - кредит. В поле вычисления дебетов введите формулу "если сумма в поле суммы из таблицы line_item положительна, укажите сумму, в противном случае -" null ". В поле" Расчет кредита "введите формулу" если сумма в поле суммы из таблицы "Таблица позиций" отрицательна, укажите сумму, в противном случае значение "null".

Основываясь на этом довольно простом дизайне базы данных, вы можете непрерывно добавлять больше полей, таблиц и отчетов, чтобы добавить в свою базу данных больше сложности, чтобы отслеживать ваши или ваши бизнес-финансы.

Ответ 3

Я подумал, что я мог бы нанести удар. Комментарии оценены - я уточню дизайн, основанный на отзывах от кого-либо. Я собираюсь использовать синтаксис SQL Server (2005) T-SQL, но если кто-то заинтересован в других языках, дайте мне знать, и я добавлю дополнительные примеры.

В системе учета двойного ввода основными элементами являются учетные записи и транзакции. Основной "теорией" является уравнение : Equity = Assets - Liabilities.

Объединяя элементы в уравнении учета и двух типах номинальных счетов, доходов и расходов, основная организация счетов - это просто лес вложенных счетов, корень из (минимум) пяти деревьев является одним из: Активы, Обязательства, справедливость, доходы и расходы.

[Я изучаю хорошие проекты SQL для иерархии в целом... Я обновлю это со спецификой позже.]

Один интересный дизайн иерархии описан в статье SQL Team Дополнительные деревья и иерархии в SQL.

Каждая транзакция состоит из сбалансированных дебетовых и кредитных сумм. Для каждой транзакции общая сумма дебетовых сумм и общая сумма кредита должны быть точно равны. Каждая сумма дебетования и кредита привязана к одной учетной записи.

[Подробнее следовать...]