Создайте следующие таблицы
- счет
- сделка
- Line_Item
- контакт (может быть заказчиком, поставщиком или сотрудником).
Для простоты мы будем опускать таблицу account_type, contact_type и т. Д.
Определите связи между таблицами и настройте их
- контакт может иметь много транзакций, но каждая транзакция может иметь только один контакт (отношение один ко многим)
- учетная запись может иметь много транзакций, и одна транзакция может влиять на множество учетных записей; line_item - это таблица соединения между таблицей транзакций и таблицей счетов (отношение «многие ко многим»)
- Транзакция может иметь много позиций, но каждая позиция должна относиться к одной транзакции.
У нас есть следующая схема (отношение один ко многим):
CONTACT ———< TRANSACTION ———< LINE_ITEM >——— ACCOUNT
Добавить соответствующие поля в каждую таблицу
- Контакт
- ContactId
- имя
- addr1
- addr2
- город
- состояние
- молния * * тысяча пятьдесят один
- телефон
- факс
- Адрес электронной почты
- Сделка
- TransactionID
- дата
- Memo1
- ContactId
- исх
- Line_Item
- line_itemID
- TransactionID
- ACCOUNTID
- сумма
- memo2
- Счет
- ACCOUNTID
- account_name
- ACCOUNT_TYPE
Создайте столько новых транзакций, сколько необходимо
Например, чтобы добавить новую транзакцию в базу данных, добавить новую запись в таблицу транзакций и заполнить поля, выбрать имя контакта, ввести дату и т. Д. Затем добавить новые дочерние записи в родительскую запись транзакции для затронут каждый аккаунт. Каждая запись транзакции должна иметь как минимум две дочерние записи (в системе учета двойной записи). Если я купил немного сыра за 20 долларов США, добавьте дочернюю запись в запись транзакции в дочерней записи, выберите Счет наличных денег и укажите -20,00 (отрицательно) в поле суммы. Добавьте новую дочернюю запись, выберите учетную запись бакалеи и запись 20,00 (положительный) в поле суммы. Сумма записей о детях должна быть равна нулю (т. Е. 20,00 - 20,00 = 0,00).
Создание отчетов в базе данных на основе данных, хранящихся в приведенных выше таблицах
Запрос на предоставление мне всех записей в базе данных, организованных таким образом, чтобы дочерние записи позиции строки транзакции были сгруппированы по учетной записи, отсортированы по дате, а затем по идентификатору транзакции. Создайте поле калькуляции, которое дает промежуточную сумму поля суммы в записях транзакции line_items и любых других полей калькуляции, которые вы считаете необходимыми. Если вы предпочитаете отображать суммы в формате дебет / кредит, создайте два поля расчета в запросе базы данных, в котором одно поле называется дебет, а другое - кредит. В поле расчета дебета введите формулу «если сумма в поле суммы из таблицы line_item положительна, показать сумму, в противном случае - ноль». В поле для расчета кредита введите формулу «если сумма в поле суммы из таблицы« Строка »является отрицательной, показать сумму, в противном случае - ноль».
Основываясь на этом довольно простом дизайне базы данных, вы можете непрерывно добавлять больше полей, таблиц и отчетов, чтобы повысить сложность вашей базы данных для отслеживания ваших или ваших финансов.