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
ACCOUNTcó thể có nhiềuENTRIESAn
ENTRYcó thể là mộtCREDIThoặcDEBIT- An
ENTRYcó một ngày nó được ghi có hoặc ghi nợ vào - An
ENTRYcó mộtPAYEE An
ENTRYcó thể được liên kết với mộtBUDGET CATEGORYA
CREDITcó một lượngENTRY- A
CREDITcó một mô tả vềENTRY - A
CREDITcó thể được lên lịch trong tương lai A
CREDITcó thể được định kỳ lại theo tần suất và hoặc số lượngA
DEBITcó một lượngENTRY- A
DEBITcó một mô tả vềENTRY - A
DEBITcó thể được lên lịch trong tương lai A
DEBITcó thể được định kỳ lại theo tần suất và hoặc số lượngA
PAYEEcó tênA
BUDGETcó nhiềuBUDGET CATEGORIESA
BUDGETchỉ có thể được liên kết với một tháng theo lịchA
BUDGET CATEGORYcó thể chứa nhiềuENTRIES- A
BUDGET CATEGORYcó tên A
BUDGET CATEGORYcó mộtBUDGETsố tiềnA
FORECASTcó ngày bắt đầu- A
FORECASTcó ngày kết thúc - A
FORECASTcó số dư đầu - A
FORECASTcó nhiềuFORECASTED DAYS A
FORECASTcó mộtFORECASTED BUDGETA
FORECASTED DAYcó một ngày duy nhất- A
FORECASTED DAYcó thể có nhiềuFORECASTED DEBITS A
FORECASTED DAYcó thể có nhiềuFORECASTED CREDITSA
FORECASTED DEBITcó một số tiền- A
FORECASTED DEBITcó một mô tả - A
FORECASTED DEBITcó mộtFORECASTED BUDGET CATEGORY - A
FORECASTED DEBITcó mộtPAYEE A
FORECASTED DEBITcó thể được định kỳ lạiA
FORECASTED CREDITcó một số tiền- A
FORECASTED CREDITcó một mô tả - A
FORECASTED CREDITcó mộtFORECASTED BUDGET CATEGORY - A
FORECASTED CREDITcó mộtPAYEE A
FORECASTED CREDITcó thể được định kỳ lạiA
FORECASTED BUDGETcó nhiềuFORECASTED BUDGET CATEGORIESA
FORECASTED BUDGET CATEGORYcó thể có nhiềuPAYEESA
PAYEEcó 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
isActivecột trên cả haiBudgetsvàBudgetCategoriestrong 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
DebitsvàCreditsnhư 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
ScheduledTransactionsbảng cho phép tôi có hai số tiền khác nhau, một số tiền dự kiếnScheduledTransactionsvà một số tiền thực tế trong mộtDebitshoặ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.

