2010-03-22 76 views
30

Có ai biết hoặc có bất kỳ liên kết nào đến các trang web mô tả chi tiết về cách thiết kế lược đồ cơ sở dữ liệu cho hệ thống kế toán kép không?Thiết kế lược đồ cơ sở dữ liệu cho một hệ thống kế toán kép?

Tôi đã tìm thấy một loạt bài viết nhưng không đủ thuyết minh. Sẽ đánh giá cao nếu ai đó có thể giúp tôi về điều này.

+0

@soden - phần cụ thể của bài viết cụ thể nào bạn muốn được trợ giúp? – DVK

+0

Tôi có một sự hiểu biết cơ bản về lưu giữ sổ sách kép nhưng chuyển đổi khái niệm này thành một lược đồ cơ sở dữ liệu ,,,, tôi cũng biết rằng các loại nước ép sáng tạo của tôi không chảy trong cái này. – soden

Trả lời

27

Dưới đây là một liên kết mà bạn có thể thấy hữu ích:

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

Cập nhật: liên kết thay thế (như một bản gốc dường như bị phá vỡ):

+0

tôi đã đọc nội dung này. nhưng thực sự không biết cách sử dụng nó. Một số ví dụ về sql sẽ đóng băng trên bánh :). thnx theo cách – soden

+1

bạn có nền tảng kế toán không? Tôi đã dành hơn 10 năm trong kế toán và sẽ ngần ngại tạo ra một gói kế toán từ đầu ... bài viết liên kết ở trên là một ví dụ rất tốt về thiết lập bảng và các quy trình kế toán. Bạn thích loại ví dụ SQL nào? – Leslie

+0

http://www.cuppadev.co.uk/dev/double-entry-accounting-in-rails/ liên kết này giải thích cùng một nội dung. nhưng im bây giờ chắc chắn làm thế nào tôi có nghĩa vụ phải bắt đầu xây dựng lược đồ cơ sở dữ liệu. tôi rất thành thạo trong RDBMS và một số kế toán cơ bản mà tôi đã học thorugh tự học trong vài tuần qua. im chỉ bị nhầm lẫn. id là tốt đẹp nếu bạn có thể giúp tôi về điều này. – soden

6

Tôi nghĩ mình cũng có thể đâm vào nó. Nhận xét được đánh giá cao - Tôi sẽ tinh chỉnh thiết kế dựa trên phản hồi từ bất kỳ ai. Tôi sẽ sử dụng cú pháp T-SQL SQL Server (2005) hiện tại, nhưng nếu có ai quan tâm đến các ngôn ngữ khác, hãy cho tôi biết và tôi sẽ thêm các ví dụ bổ sung.

Trong double-entry bookkeeping system, các yếu tố cơ bản là tài khoản và giao dịch. Lý thuyết cơ bản là accounting equation: Vốn chủ sở hữu = Tài sản - Nợ phải trả.

Kết hợp các mục trong phương trình kế toán và hai loại tài khoản danh nghĩa, Thu nhập và Chi phí, tổ chức cơ bản của tài khoản chỉ đơn giản là rừng của tài khoản lồng nhau, gốc của (tối thiểu) năm cây là một trong: Tài sản , Nợ, Vốn chủ sở hữu, Thu nhập và Chi phí.

[Tôi đang nghiên cứu thiết kế SQL tốt cho hệ thống phân cấp thường ... Tôi sẽ cập nhật này với chi tiết cụ thể sau này.]

Một thiết kế hệ thống cấp bậc thú vị được ghi lại trong SQL Đội Điều More Trees & Hierarchies in SQL.

Mọi giao dịch bao gồm số dư nợ và tín dụng cân bằng. Đối với mỗi giao dịch, tổng số tiền ghi nợ và tổng số tiền tín dụng phải bằng nhau. Mỗi khoản ghi nợ và số tiền tín dụng được liên kết với một tài khoản.

[Xem thêm về để làm theo ...]

+0

Lưu ý rằng câu trả lời của tôi là 'wiki cộng đồng' - vui lòng tự chỉnh sửa nó. –

25
  1. tạo các bảng sau: tài khoản, giao dịch, chi tiết đơn hàng, liên lạc. người liên hệ có thể là khách hàng, nhà cung cấp hoặc nhân viên. để đơn giản, chúng tôi sẽ loại bỏ bảng account_type, bảng contact_type, v.v.

  2. xác định mối quan hệ giữa các bảng và thiết lập chúng.

a) một số liên lạc có thể có nhiều giao dịch, nhưng mỗi giao dịch chỉ có thể có một liên hệ (một-nhiều mối quan hệ)

b) một tài khoản có thể có nhiều giao dịch, và một giao dịch có thể ảnh hưởng nhiều tài khoản; lineitem là bảng nối giữa bảng giao dịch và bảng tài khoản (mối quan hệ nhiều-nhiều)

c) một giao dịch có thể có nhiều chi tiết đơn hàng, nhưng mỗi chi tiết đơn hàng phải liên quan đến một giao dịch. Chúng ta có sơ đồ sau (mối quan hệ một-nhiều):

LIÊN HỆ> --- GIAO DỊCH --- < Line_Item> --- TÀI KHOẢN

3 Thêm trường thích hợp cho mỗi bảng. Liên hệ (contactID, tên, addr1, addr2, thành phố, tiểu bang, mã zip, điện thoại, fax, email, v.v.). Giao dịch (transactionID, ngày, memo1, contactID, ref, line_itemID. Line_item (line_itemID, transactionID, accountID, số tiền, memo2) Tài khoản (accountID, line_itemID, account_name, account_type)

4 Ví dụ để thêm giao dịch mới trong cơ sở dữ liệu, thêm bản ghi mới vào bảng giao dịch và điền vào các trường, chọn tên liên hệ, nhập ngày, v.v. Sau đó, thêm bản ghi con mới vào bản ghi giao dịch cha cho mỗi tài khoản bị ảnh hưởng. ít nhất hai hồ sơ trẻ em (trong một hệ thống sổ sách kế toán kép) Nếu tôi mua một ít phô mai với 20 đô la tiền mặt, thêm một bản ghi con vào hồ sơ giao dịch, Trong hồ sơ con, chọn tài khoản Tiền mặt và ghi lại −20.00 (âm) trong Thêm một bản ghi con mới, chọn tài khoản Cửa hàng tạp hóa và ghi 20.00 (dương) trong trường số tiền. Tổng số các bản ghi con sẽ là zer o (ví dụ: 20,00 - 20,00 = 0,00). Tạo nhiều giao dịch mới nếu cần.

5 Tạo báo cáo trong cơ sở dữ liệu dựa trên dữ liệu được lưu trữ trong các bảng trên. Truy vấn cung cấp cho tôi tất cả các bản ghi trong cơ sở dữ liệu được sắp xếp sao cho các bản ghi con của mục hàng giao dịch được nhóm theo tài khoản, được sắp xếp theo ngày rồi theo ID giao dịch. Tạo trường tính toán cho tổng số đang chạy của trường số lượng trong các bản ghi giao dịch line_items và bất kỳ trường tính toán nào khác mà bạn thấy cần thiết. Nếu bạn muốn hiển thị số tiền trong định dạng ghi nợ/tín dụng, hãy tạo hai trường tính toán trong truy vấn cơ sở dữ liệu có một trường được gọi là ghi nợ và một trường được gọi là tín dụng. Trong trường tính toán ghi nợ, hãy nhập công thức "nếu số tiền trong trường số tiền từ bảng line_item là số dương, hiển thị số tiền, nếu không thì". Trong trường tính toán tín dụng, nhập công thức "nếu số tiền trong trường số tiền từ bảng mục hàng là số âm, hiển thị số tiền, nếu không thì".

Dựa trên thiết kế cơ sở dữ liệu khá đơn giản này, bạn có thể liên tục thêm nhiều trường, bảng và báo cáo để thêm độ phức tạp hơn vào cơ sở dữ liệu để theo dõi tài chính doanh nghiệp của bạn.

Các vấn đề liên quan