2010-03-22 13 views
30

Czy ktoś zna lub ma jakieś linki do stron internetowych opisujących szczegóły dotyczące projektowania schematu bazy danych dla systemu podwójnego księgowania ??.Projekt schematu bazy danych dla systemu księgowego z podwójnym wpisem?

Znalazłem kilka artykułów, ale nie były wystarczająco wyjaśniające. Byłbym wdzięczny, gdyby ktoś mógł mi w tym pomóc.

+0

@soden - z jakiej konkretnej części konkretnego artykułu chcesz uzyskać pomoc? – DVK

+0

Mam podstawową wiedzę na temat podwójnego księgowania, ale konwertowanie tej koncepcji do schematu bazy danych ,,,, cóż, domyślam się, że moje kreatywne soki nie płyną w tym. – soden

Odpowiedz

27

Oto jeden link, który może się okazać pomocne:

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

Aktualizacja: Alternatywne odnośniki (jak oryginał jeden wydaje się być uszkodzony):

+0

Przeczytałem ten. ale nie wiedział, jak z niego korzystać. Niektóre przykłady sql byłoby wisienką na torcie :). Thnx przy okazji – soden

+1

czy masz wykształcenie rachunkowe? Spędziłem ponad 10 lat w księgowości i zawahałem się stworzyć pakiet księgowy od zera ... artykuł z powyższym opisem jest bardzo dobrym przykładem konfiguracji tabeli i procesów księgowych. Jakie rodzaje przykładów SQL chcesz? – Leslie

+0

http://www.cuppadev.co.uk/dev/double-entry-accounting-in-rails/ ten link wyjaśnia te same rzeczy. ale jestem teraz pewien, jak mam zacząć budować schemat bazy danych. Jestem dobrze zorientowany w RDBMS i pewnej podstawowej rachunkowości, którą nauczyłem się samoobsługi w ciągu ostatnich kilku tygodni. im tylko mylić. id byłoby miło, gdybyś mi pomógł w tej sprawie. – soden

6

Doszedłem do wniosku, że równie dobrze mógłbym go zaatakować. Komentarze są doceniane - dopracuję projekt na podstawie opinii od nikogo. Mam zamiar użyć składni SQL Server (2005) T-SQL na teraz, ale jeśli ktoś jest zainteresowany innymi językami, daj mi znać, a dodam dodatkowe przykłady.

W przypadku double-entry bookkeeping system podstawowymi elementami są konta i transakcje. Podstawową "teorią" jest accounting equation: Kapitał = aktywa - pasywa.

Łącząc pozycje w równaniu księgowym i dwóch typach rachunków nominalnych, przychodach i wydatkach, podstawową organizacją rachunków jest po prostu las zagnieżdżonych kont, którego źródłem (minimum) jest pięć drzew: aktywa , Zobowiązania, kapitał, dochody i wydatki.

[Ja poszukiwania dobrych wzorów SQL dla hierarchii ogólnie ... Będę aktualizować to ze specyfiki później.]

Jeden ciekawy design hierarchia jest udokumentowana w artykule SQL zespołu More Trees & Hierarchies in SQL.

Każda transakcja zawiera zrównoważone kwoty debetowe i kredytowe. Dla każdej transakcji suma kwot debetowych i suma kwot kredytu musi być dokładnie równa. Każda kwota debetowa i kredytowa jest powiązana z jednym kontem.

[Więcej podążać ...]

+0

Zauważ, że moja odpowiedź brzmi "wiki społeczności" - możesz je edytować samodzielnie. –

25
  1. utworzyć następujące tabele: konta, transakcją, elementu zamĂłwienia, kontakt. kontaktem może być klient, dostawca lub pracownik. aby wszystko było proste, pominiemy tabelę account_type, tabelę contact_type itp.

  2. identyfikujemy relacje między tabelami i je konfigurujemy.

a) kontakt może mieć wiele transakcji, ale każda transakcja może mieć tylko jeden kontakt (jeden do wielu relacji)

b) Konto może mieć wiele transakcji, a jedna transakcja może wpłynąć wiele kont; lineitem jest tabelą łączenia między tabelą transakcji a tabelą kont (relacja wiele do wielu)

c) transakcja może zawierać wiele elementów zamówienia, ale każdy element zamówienia musi odnosić się do jednej transakcji. Mamy następujący schemat (relacja jeden-do-wielu):

kontakt> --- --- TRANSAKCJI < LINE_ITEM> --- KONTA

3 Dodaj odpowiednie pola na każdym stole. Kontakt (contactID, nazwa, addr1, addr2, miasto, województwo, zamek, telefon, faks, email itp.). Transakcja (identyfikator transakcji, data, memo1, contactID, ref, identyfikator_line_line.Linia_item (identyfikator_lineolu, identyfikator_użytkownika, identyfikator_konta, kwota, nr2) Konto (identyfikator_konta, identyfikator_line_id, nazwa_konta, typ_konta)

4 Na przykład, aby dodać nową transakcję w bazie danych dodaj nowy rekord w tabeli transakcji i wypełnij pola, wybierz nazwę kontaktu, wprowadź datę itd. Następnie dodaj nowe rekordy podrzędne do rekordu transakcji nadrzędnej dla każdego konta, którego dotyczy. co najmniej dwa rekordy podrzędne (w systemie księgowania z dwoma wpisami) Jeśli kupiłem trochę sera za 20 USD, dodaj rekord dziecka do rekordu transakcji, W rekordzie dziecko wybierz konto Gotówka i zapisz -20,00 (minus) w pole kwoty Dodaj nowy rekord podrzędny, wybierz konto Groceries i zanotuj 20.00 (pozytywny) w polu kwoty. Suma rekordów podrzędnych powinna wynosić zero o (tj. 20,00 - 20,00 = 0,00). Utwórz tyle nowych transakcji, ile potrzeba.

5 Utwórz raporty w bazie danych na podstawie danych przechowywanych w powyższych tabelach. Zapytanie zawierające wszystkie rekordy w bazie danych uporządkowane w taki sposób, aby rekordy podrzędne elementu zamówienia w transakcjach były pogrupowane według konta, posortowane według daty i identyfikatora transakcji. Utwórz pole obliczeniowe, które daje sumę bieżącą pola kwoty w rekordach transakcji line_items i wszelkich innych wymaganych pól obliczeniowych. Jeśli wolisz pokazywać kwoty w formacie debetowym/kredytowym, utwórz dwa pola obliczeniowe w zapytaniu do bazy danych, a następnie wybierz jedno pole o nazwie debit, a drugie - kredyt. W polu kalkulacji obciążenia wpisz formułę "jeśli kwota w polu kwoty z tabeli line_item jest dodatnia, pokaż kwotę, w przeciwnym razie wartość null". W polu obliczeń kredytowych wprowadź formułę "jeśli kwota w polu kwoty z tabeli pozycji wiersza jest ujemna, wyświetl kwotę, w przeciwnym razie wartość null".

W oparciu o ten prosty projekt bazy danych można w sposób ciągły dodawać kolejne pola, tabele i raporty, aby zwiększyć złożoność bazy danych, umożliwiając śledzenie finansów firmy lub jej finansów.

Powiązane problemy