Как разработать реляционную модель для двойного учета с учетом затрат на работу - PullRequest
2 голосов
/ 21 января 2020

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

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

Было несколько примеров транзакций с использованием House, владельцев счетов, сборов и т. Д. c. У меня есть несколько других специфических c вариантов использования, которые я хотел бы получить для ввода:

  1. У меня нет клиентов. Я покупаю недвижимость (обычно около 1037 * уходит, создается обязательство (ссуда), создается актив (собственность)), трачу кучу денег на его ремонт (либо около 1038 * в магазине) , оплата кредитной картой в магазине, или чек, выписанный продавцу, который дебетует актив имущества и дебетует или кредитует источник финансирования), а затем продает его (приходит приблизительно sh, ссуда выплачивается, и, надеюсь, осталось больше sh, чем я потратил на проект). Вероятно, это создает больше записей в Главной книге, чем я перечислил выше, но я не бухгалтер. Я думаю, что я понимаю, что все мои расходы go по отношению к моей базе в собственности, и если мои net доходы превышают мою базу, тогда я заработал деньги, а если нет, то нет.

  2. Итак, что мне нужно записать, так это то, что а) приходятся на конкретный c счет (т. Е. На текущий счет компании или на карту Best Buy и т. Д. c.), Б) обычно связаны с Определенные c задания (но не всегда - у меня есть случайные накладные расходы, такие как канцелярские товары), и c) всегда связаны с кодом затрат (т. е. «100.12 - Материалы для окон», «100.13 - Работа с окнами», et c.).

  3. Часто я получаю счета от поставщиков, которые должны быть в будущем. Я хотел бы отслеживать счета, полученные, но еще не оплаченные за данную работу (обязательные расходы). Я думаю, что эта транзакция выглядит так, но я не совсем уверен:

    Vendor bill received

  4. Как вы могли догадаться из моего Подсказка выше о «карте Best Buy владельца», я иногда (чаще, чем должен) использую свои личные средства для расходов, связанных с компанией и работой. Я думаю (опять же с оговоркой, что я являюсь мирянином), что все эти расходы кредитуют «Собственный капитал» и дебетуют / кредитуют другие счета по мере необходимости.

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

1 Ответ

5 голосов
/ 22 января 2020

Предварительный

Для тех, кто читает этот Ответ, пожалуйста, обратите внимание, что контекст выглядит следующим образом, с шагом:

Если вы не воспользовались этим, этот Ответ может не иметь смысла.

Я отвечу в последовательности, которая нормализована, что, конечно, отличается от того, как вы изложили проблему.

Принцип и исправление

Есть несколько, более одной, ошибок в вашей заявленной проблеме, о которых вы не знаете, поэтому первым шагом является осознание; понимание. Как только проблема правильно и точно объявлена, ее легко решить. Это ошибки, которые обычно делают разработчики, поэтому их нужно понимать как таковые ... задолго до того, как приложение рассматривается.

1 Первый принцип

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

  • Если ручная (или предыдущая компьютеризированная) система сломана, и вы внедряете новое или заменяющее приложение на ее основе, вы гарантированно внесете эту поломку в приложение.

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

  • Масштабирование - это наименьшее из наших беспокойств. Проблема в том, как какая-то конкретная вещь работает с какой-то другой.

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

2 Второй принцип

Я отслеживал все это в большой, уродливой электронной таблице [...] - метод электронной таблицы работает не очень хорошо

  • Почему он не работает [как есть]?
    Причина 1 из 2.
    Вы совершаете ошибку, которую обычно совершают разработчики: вы проверяете и изучаете кусочки вещи, находящейся в физическом мире, и пытаетесь выяснить, как эта вещь работает. Гарантированный сбой, потому что как работает вещь; его цель; et c, находится в интеллектуальном царстве , а не в физическом.

    • Я не буду здесь это подробно описывать, но следует отметить более серьезную проблему. Эта ошибка является конкретным c экземпляром более крупной ошибки, и она очень распространена:
      разработчики фокусируются на функциях GUI,
      вместо требования, которое составляет
      правильно определить данные и их отношения , от которых функции GUI экзистенциально зависят .
  • Человек, который имеет не узнал о внутреннем сгорании, не может понять, как построить двигатель, взглянув на разобранные части двигателя, даже если детали аккуратно разложены. Не говоря уже о форсунках или турбокомпрессорах. Принцип внутреннего сгорания логичен, части являются физическими.

  • Здесь вы посмотрели на электронные таблицы, которые другие использовали для ведения своего учета, и, возможно, скопировали это, не понимая, что они с электронными таблицами.

  • Показательный пример.
    Вы изучили связанные ответы first и second , и вы думаете, что можете выяснить, как применить это к новому приложению, которое устраняет проблему грязной большой электронной таблицы.

    • Многие разработчики думают, что если они отработают гайки и болты, скопируйте-вставьте-и-замените, приложение каким-то образом будет работать. Обратите внимание на тщательно продуманную, но все еще неполную графику, которая детализирует воспринимаемые транзакции.

    • Они упускают логическое царство и возятся с физическим царством без требуемого понимания того, чем они являются. возиться с.

    • Одним словом, забудьте о красивой графике для транзакций, как вашей, так и моей, и постарайтесь понять Logi c (этот принцип) и Стандарт бухгалтерского учета [3].

  • Код, основанный на тестировании "aka", минимум "aka" методом проб и ошибок ", является полностью несостоятельным методом, он не имеет научных данных c основа (маркетинг, да, но наука, нет), и она гарантированно потерпит неудачу . Опасно, потому что стоимость постоянна, никогда не бывает конечной.

    • И до продолжайте сбой , если вы понимаете вышеизложенное.

    • Точнее, это антинаучно, поскольку противоречит науке о создании приложений и баз данных.

  • Итак, первый шаг - разбить эту большую таблицу на логические единицы, которые имеют цель. И, конечно, свяжите каждый столбец ссылочной таблицы с правыми столбцами в ссылочной таблице ... так, чтобы любое значение Amount никогда не дублировалось.

3 Третий принцип

Я отслеживал все это в большой, уродливой электронной таблице [...] - метод электронной таблицы работает не очень хорошо

  • Почему это не работает, или как есть, или когда электронная таблица была разделена на логические единицы?
    Причина 2 из 2.
    Отсутствие стандартов.
    Поскольку предметом учета является , мы должны используйте стандарты бухгалтерского учета .

  • Эта одна большая и ужасная электронная таблица является готовым доказательством того, что вы не использовали Бухгалтер для ее настройки. И, конечно, вы не можете настроить набор электронных таблиц для ведения своего бухгалтерского учета, не разбираясь в бухгалтерском учете или не используя квалифицированного бухгалтера.

  • Поэтому вторым шагом является либо получение бухгалтера, либо получить хорошее понимание бухгалтерского учета. Еще раз обратите внимание на готовое доказательство ваших тщательно продуманных транзакций: несмотря на то, что вы очень способный человек, вы не можете определить учетную логику c , которая первая и секунда связанные ответы, не говоря уже об учете, необходимом для вашего приложения (или вашей ручной системы).

  • Поэтому лучший совет, который я могу вам дать, это , как указано в Ответе с двойной записью , найдите в Интернете несколько хороших учебных пособий и изучите их.

  • Если вы это сделали или наняли бухгалтера чтобы настроить свои книги, вы должны разделить одну большую жирную электронную таблицу на стандартные бухгалтерские таблицы:

    • Бухгалтерский баланс:
      • Активы или пассивы
    • Прибыль и убыток:
      • Доход или расход
    • и еще один набор (позже)
  • Другой способ изложения этого принципа заключается в следующем. Когда кто-то не знает о существовании Стандарта или, что еще хуже, когда он сознательно решает не соблюдать его, его оставляют в опасном положении , заново изобретая колесо , с нуля. Ака "Разработка через тестирование", ака "код минимально возможный", ака "проб и ошибок". Это означает, что каждый будет проходить go через целую серию приращений разработки, которые могут быть устранены путем соблюдения Стандарта.

Проблема и решение

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

4 Собственность / ипотека

У меня нет клиентов. Я покупаю недвижимость (обычно ок. 1634 * уходит, создается обязательство (ссуда), создается актив (собственность)), трачу кучу денег на его ремонт (либо ок. 1635 * в магазине). , оплата кредитной картой в магазине, или чек, выписанный продавцу, который дебетует актив имущества и дебетует или кредитует источник финансирования), а затем продает его

  • I Я не говорю, что вы не прислушались к совету, который я дал в Двойном ответе . Я говорю, что вы не оценили серьезность совета; что это означает в контексте учета (прежде чем мы углубимся в контекст базы данных).

  • Деньги представляют ценность. Деньги; значение, не может быть создано или уничтожено. Это может быть только перемещено. Из одного ведра в другое. Требуется, чтобы ваши сегменты были определены и правильно расположены в соответствии с [3].

  • Свойство не создано, оно уже существует. Когда вы покупаете собственность, происходит движение вашего ок sh в банк, и движение вашей собственности к вам. Только в наивном смысле собственность теперь является «активом», ипотека - теперь «пассивом». Эта наивность будет уточнена в надлежащие учетные области позже.

  • Фактически вы работаете как небольшой банк с одним филиалом; кооператив; казино. Точный контекст для Ответа с двойной записью . Следующее справедливо для
    или исправленного набора электронных таблиц,
    или для следования и реализации Ответа с двойной записью (если вы go прямо в приложение ... без проверки исправления к вашей единой электронной таблице).

    • Это действительно важно понять, поскольку это связано с законодательством вашей страны, о котором вы не упомянули. Это законодательство будет известно вам как Налогообложение или ваша Налоговая декларация для бизнеса. Даже если вы одновременно владеете только одной собственностью.

    • Ваш «клиент» - это каждый банк, который задействован для каждой собственности. Назовите его для свойства.

    • Каждая ипотека (собственность) должна быть настроена как внешний счет. Это позволит вам проводить только те транзакции, которые на самом деле связаны с ним, против него. Платежи по кредиту; Комиссия банка; Расходы; и др c. Денежных средств не будет, пока имущество не будет продано.

    • В любом случае внешний счет будет соответствовать банковской выписке, которую банк предоставляет вам для ипотечного счета (который вы не упомянули, но который является фундаментальным требованием учета).

    • Как определено в Ответе с двойной записью , каждая транзакция по Внешнему счету будет иметь одну ветку Двойной записи в Главной книге. Более подробно, позже.

    • Является ли это активом или пассивом в терминах учета, является функцией записи ГК, а не функцией внешнего счета. (Безусловно, мы знаем, что оно представляет собой собственность, которая с наивной точки зрения является «активом», пока не начнет терять деньги, а с наивной точки зрения станет «пассивом».)

  • Другой способ определения этого пункта заключается в том, что банковский кредит представляет собой договор, по которому деньги (стоимость) «переходят из рук в руки» (перемещаются). Банк, с которым вы работаете, является «клиентом», внешним счетом. Вы должны сохранить все доходы и расходы, связанные с договором, с договором.

приложение нишевого рынка ...
У меня есть несколько других спецификаций c прецеденты ...

  • Нет, нет. Нет ничего нового под солнцем. Если вы правильно настроили свои книги (несколько связанных электронных таблиц с использованием стандартов бухгалтерского учета), это случай излишнего использования. Надеюсь, мое объяснение продемонстрировало этот факт.

5 ГК

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

  • Хотя первый связанный ответ касается:
    Производный против сохраненного баланса счета (эффективный и аудит возможна обработка до конца месяца),
    и второй связанный ответ касается:
    Двойной учет (внедрение универсального стандарта бухгалтерского учета в существующей системе бухгалтерского учета, более высокий уровень способности к аудиту),
    ни то, ни другое не объясняет подробно

  • Главная книга является центральной статьей любой Системы учета.

    • Система двойного входа - это не отдельная статья, а продвижение к этой книге.

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

  • У вас нет настоящей книги. Одна большая электронная таблица - это не книга.

  • Вы должны настроить регистр согласно [3]. В лучшем случае некоторые элементы в этой таблице будут стать записями в Главной книге, но учтите, что вы будете воспринимать их совершенно по-разному из-за исправлений, изложенных в [1] [2] [3].

  • Заметьте, что когда мы говорим "поместите это в Главную книгу" или "не в Главную книгу", что для простоты, мы имеем в виду именно ссылку на одиночный Ввод в книгу, который идентифицируется указанным c номером счета в Главной книге.

    • В модели данных это LedgerNo.
  • Аналогично, когда мы говорим "Счета", мы имеем в виду именно один номер счета в книге.

    • Если транзакция отсутствует в Главной книге (конкретный c Номер счета, LedgerNo, одна ветвь кредита / дебета DEA), ее нет в «счетах», он не учитывается.
  • Здесь вы создадите подлинные счета для активов и обязательств. Это для внутренних целей, в Главной книге, как указано в поле для Внутренний в модель данных .

  • Лучший совет, который я может дать вам трал в Интернете учебники по бухгалтерскому учету; определить, что хорошо; внимательно изучите их, чтобы создать правильную книгу для ваших целей.

  • Простой ответ: книга представляет собой Иерархия номеров счетов.

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

    • Всякий раз, когда сообщается о Главной книге (или любой производной от Главной книги, такой как BalanceSheet или Profit & Loss):
      иерархия отображается с отступом, записи транзакционного Счета показывают Текущий баланс за текущий месяц
      и совокупные записи в Учетной записи показывают совокупность для дерева под ним

[ ваши графические транзакции]

  • Прежде всего, каждая транзакция находится в Главной книге. Это означает, что одна часть бухгалтерской транзакции с двойным вводом находится в Главной книге. Взгляните на § 5 в моем ответе на бухгалтерию двойной записи , обратите внимание, что в каждой бизнес-операции есть хотя бы одна синяя запись (не беспокойтесь о других деталях).

  • Во-вторых, другой участок DEA - это:

    • либо в книге, что означает, что деньги перемещаются между одним счетом в книге LedgerNo и другая учетная запись ГК LedgerNo. Обратите внимание на бизнес-операции, в которых обе стороны выделены синим цветом.

    • или на внешнем счете, что означает, что деньги были перемещены между одним счетом ГК LedgerNo и внешним счетом AccountNo. Обратите внимание на бизнес-операции, в которых одна сторона синяя, а другая зеленая.

  • Когда вы поймете это и настроите свою книгу, ее не будет "??" в вашей графике, и синий / зеленый будет показан. (Не делайте заново свою графику, я ожидаю, что этого ответа будет достаточно.)

    • Ваше обозначение "актив / пассив" неверно. Точнее, преждевременно делать это заявление до того, как книга будет полностью определена и упорядочена. Сначала настройте свою книгу, с учетом активов / пассивов для каждой записи. Тогда вам не придется объявлять «актив / пассив» для каждой транзакции, потому что это является функцией номера счета ГК LedgerNo, а не функцией транзакции.

расходы, которые а) поступают из определенного c аккаунта (т. Е. Текущего счета компании или карты Best Buy владельца и т. П. c.),

внешнего аккаунта (один участок DEA в Гроссбух, другая часть внешней учетной записи). Отмечая предостережения выше. Другая часть DEA будет относиться к одной из этих (иерархия):

  • Расходы / Улучшение собственности / Структура / Материал
  • Расходы / Улучшение собственности / Структура / Труд
  • Расходы / Улучшение собственности / Установка / Материал
  • Расходы / Улучшение собственности / Установка / Работа
  • Расходы / Улучшение собственности / Мебель

расходы, которые c) всегда связаны с кодом затрат (т. Е. «100.12 - Материалы для окон», «100.13 - Работа с окнами» и др. c.).

У вас больше не будет «кодов затрат» ", все они будут номерами счетов ГК LedgerNos, потому что ГК - это то, где вы учитываете все и вся.

Одна ветвь DEA в Главной книге, другая ветвь во Внешнем счете для определенного свойства. Иерархия будет такой же, как и в предыдущем пункте.

расходы, которые b) обычно связаны с указанным c заданием

Внешний Учетная запись (одна ветвь DEA в Главной книге, другая во внешней учетной записи).

(но не всегда - у меня есть случайные накладные расходы, такие как канцелярские товары)

Ledger-Ledger

  • одна ветвь DEA в книге для учета расходов или обязательств LedgerNo ... что деньги были выплачены

    • Расходы / Обычные / Канцелярские товары
  • другая часть в Главной книге для Дохода или Актива LedgerNo ... что деньги были выплачены с

    • Доход / Ежемесячная выплата

6 Обработка кредитных и других карт

плата за кредитную карту
Карта Best Buy

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

  • Настройте каждую учетную запись в качестве внешней учетной записи, одну ногу DEA здесь, другую в Главной книге.

  • «Карта Best Buy владельца» мне не ясно (кто является владельцем, вы или владелец собственности ... если последнее, то пока что предположение, что «вы» покупаете и продаете недвижимость, неверно.)

    • В любом случае, я полагаю, что предоставил достаточно информации, чтобы вы могли это выяснить.

    • Не объединяйте учетную запись собственности владельца и карту Best Buy в одну внешнюю учетную запись: keep отдельные внешние счета для каждого.

7 Калькуляция задания

Обратите внимание, что я обращаюсь к этому последнему, потому что, как только вы исправите большие проблемы, оставшиеся проблемы станут небольшими. То, что вы называете большими проблемами (стоимость работы; прибыль / убыток на собственность), после того, как книга правильно настроена для вашего бизнеса, на самом деле небольшие проблемы.

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

  • Для Оценки Стандартная процедура заключается в создании отдельной структуры Счета (дерево в иерархии) в Главной книге. , Их часто называют приостановленными счетами, как в деньгах, которые хранятся в ожидании .

  • При правильном обращении эти учетные записи не позволят вам закрыть или завершить работу с внешней учетной записью до того, как все оценки будут переведены в фактические данные (приостановка на ноль).

  • Бизнес-операции точно такие же, как и для фактических.

  • Это обеспечит точное отслеживание таких цифр, а также разницу при перемещении элемента из Оценки в Факт.

8 Модель данных • Калькуляция задания

Принимая во внимание, что модель данных в связанных ответах first и second завершена для цели, в которой регистр не расширен :

  • Этот ответ посвящен объяснению книги, и эта модель данных дает полное определение Ledger

    • Упорядочено по AccountType
    • Иерархия с одним родителем
      • Только конечный уровень LedgerAccount может быть обработан против
      • Промежуточный уровень LedgerIntermediate предназначен для суммирования дерева под ним.
  • Я еще нормализовал Transaction

  • расширенный Внешний Account, чтобы показать Лица против Организации

  • Все ограничения сделаны явными.

LDM

O слишком большой для встроенного графика c. Вот PDF :

  • Кроме того, он содержит примеры данных, которые включают все примеры, описанные в ответе
  • Обратите внимание на отступ в Главной книге, который обозначает иерархию счетов
...