Tôi đang cố gắng tìm hiểu thêm về Cơ sở dữ liệu quan hệ và tôi nghĩ rằng không có cách nào tốt hơn để học sau đó thực sự làm một cái gì đó. Tôi quyết định thực hiện một nỗ lực cá nhân để xem xét Dự báo và Kế toán Ngân sách Cá nhân. Tôi đã thực hiện một số nghiên cứu cho đến nay và muốn hiểu rõ hơn về Thiết kế và Chuẩn hóa Cơ sở dữ liệu hiện tại của tôi.
Suy nghĩ và đề xuất của bạn về Thiết kế cơ sở dữ liệu hiện tại của tôi là gì? Tôi đã bao gồm một số thông tin dưới đây để giúp bạn tốt hơn giúp tôi :)
Tiết lộ: Đây là một dự án cá nhân. Không phải cho bài tập về nhà hoặc cho công việc.
Sự kiện kinh doanh
Một ngân hàng
ACCOUNT
có thể có nhiềuENTRIES
An
ENTRY
có thể là mộtCREDIT
hoặcDEBIT
- An
ENTRY
có một ngày nó được ghi có hoặc ghi nợ vào - An
ENTRY
có mộtPAYEE
An
ENTRY
có thể được liên kết với mộtBUDGET CATEGORY
A
CREDIT
có một lượngENTRY
- A
CREDIT
có một mô tả vềENTRY
- A
CREDIT
có thể được lên lịch trong tương lai A
CREDIT
có thể được định kỳ lại theo tần suất và hoặc số lượngA
DEBIT
có một lượngENTRY
- A
DEBIT
có một mô tả vềENTRY
- A
DEBIT
có thể được lên lịch trong tương lai A
DEBIT
có thể được định kỳ lại theo tần suất và hoặc số lượngA
PAYEE
có tênA
BUDGET
có nhiềuBUDGET CATEGORIES
A
BUDGET
chỉ có thể được liên kết với một tháng theo lịchA
BUDGET CATEGORY
có thể chứa nhiềuENTRIES
- A
BUDGET CATEGORY
có tên A
BUDGET CATEGORY
có mộtBUDGET
số tiềnA
FORECAST
có ngày bắt đầu- A
FORECAST
có ngày kết thúc - A
FORECAST
có số dư đầu - A
FORECAST
có nhiềuFORECASTED DAYS
A
FORECAST
có mộtFORECASTED BUDGET
A
FORECASTED DAY
có một ngày duy nhất- A
FORECASTED DAY
có thể có nhiềuFORECASTED DEBITS
A
FORECASTED DAY
có thể có nhiềuFORECASTED CREDITS
A
FORECASTED DEBIT
có một số tiền- A
FORECASTED DEBIT
có một mô tả - A
FORECASTED DEBIT
có mộtFORECASTED BUDGET CATEGORY
- A
FORECASTED DEBIT
có mộtPAYEE
A
FORECASTED DEBIT
có thể được định kỳ lạiA
FORECASTED CREDIT
có một số tiền- A
FORECASTED CREDIT
có một mô tả - A
FORECASTED CREDIT
có mộtFORECASTED BUDGET CATEGORY
- A
FORECASTED CREDIT
có mộtPAYEE
A
FORECASTED CREDIT
có thể được định kỳ lạiA
FORECASTED BUDGET
có nhiềuFORECASTED BUDGET CATEGORIES
A
FORECASTED BUDGET CATEGORY
có thể có nhiềuPAYEES
A
PAYEE
có tên
Dữ liệu mẫu
+----------------+----------+------------------+----------------+---------------+--------------+------------------+
| Account Number | Date | Description | Payee Name | Credit Amount | Debit Amount | Budget Category |
+----------------+----------+------------------+----------------+---------------+--------------+------------------+
| 25178 | 10/01/18 | Payroll | My Work | $1000.00 | | Income |
| 25178 | 10/02/18 | McRibs for Lunch | McDonalds | | $13.12 | Fast Food |
| 25178 | 10/03/18 | Electric Bill | FPL | | $133.68 | Electric |
| 25178 | 10/04/18 | Water Bill | City Water Co. | | $58.12 | Water and Sewage |
| 25178 | 10/05/18 | Clothes for Work | Target | | $65.02 | Clothes |
| 99875 | 10/28/18 | Bonus Check | My Work | $1300.00 | | Income |
+----------------+----------+------------------+----------------+---------------+--------------+------------------+
+----------+-------------+--------------+---------------+-----------------+------------------+
| Due Date | Payee | Debit Amount | Credit Amount | Budget Category | Re-Occurs On Day |
+----------+-------------+--------------+---------------+-----------------+------------------+
| 10/28/18 | Mortgage Co | $1500.00 | | Mortgage | 28 |
| 10/01/18 | My Work | | $990.00 | Income | 1 |
| 10/03/18 | FPL | $110.00 | | Electric | 3 |
+----------+-------------+--------------+---------------+-----------------+------------------+
Thiết kế cơ sở dữ liệu hiện tại
Tôi cho rằng sẽ rất hữu ích khi biết TẠI SAO tôi đã làm gì đó để bạn có thể hiểu logic và lý luận của tôi.
- Mỗi Ngân sách có thể chứa nhiều hơn 1 Danh mục Ngân sách. Tôi đã thêm một
isActive
cột trên cả haiBudgets
vàBudgetCategories
trong trường hợp tôi muốn kích hoạt lại một loại ngân sách hoặc danh mục ngân sách khác. - Tôi tách các giao dịch thành hai bảng phân chia rất giống nhau
Debits
vàCredits
như tôi thấy có hai loại giao dịch. - Để cho phép và theo dõi các giao dịch được lên lịch hoặc định kỳ, tôi đã tạo một
ScheduledTransactions
bảng cho phép tôi có hai số tiền khác nhau, một số tiền dự kiếnScheduledTransactions
và một số tiền thực tế trong mộtDebits
hoặcCredits
.
- Tôi hình dung mỗi dự báo sẽ cần ngày bắt đầu và ngày kết thúc cũng như số dư bắt đầu.
- Mỗi ngày sẽ cần phải được dự báo để có thể xác định tổng số Nợ và Tín dụng.
- Tôi nghĩ rằng tôi có thể đã sử dụng các bảng khác và thêm một vài Cột isForecasted và nó sẽ hoạt động tương tự. Tôi quyết định không đi theo con đường đó để giải mã cả hai trong trường hợp cần thực hiện bất kỳ thay đổi nào cũng như nếu đây là một ứng dụng quy mô lớn đọc và viết dự báo lớn vào cùng bảng như giao dịch thực tế tôi nghĩ sẽ gây ra nhật ký các vấn đề hiệu suất.