Desain Basis Data untuk Tinjauan Peramalan


8

Saya mencoba untuk belajar lebih banyak tentang Database Relasional dan saya pikir tidak ada cara yang lebih baik untuk belajar daripada benar-benar melakukan sesuatu. Saya memutuskan untuk membuat upaya pribadi untuk melihat Personal Budget Accounting and Forecasting. Saya telah melakukan beberapa penelitian sejauh ini dan ingin mendapatkan beberapa wawasan tentang Desain dan Normalisasi Database saya saat ini.

Apa pendapat dan saran Anda tentang Desain Database saya saat ini? Saya telah memasukkan beberapa informasi di bawah ini untuk membantu Anda membantu saya dengan lebih baik :)

Pengungkapan: Ini adalah proyek pribadi. Bukan untuk pekerjaan rumah atau untuk pekerjaan.

Fakta Bisnis

  • Bank ACCOUNTdapat memiliki banyakENTRIES

  • Sebuah ENTRYbaik bisa menjadi CREDITatauDEBIT

  • Sebuah ENTRYtanggal yang dikreditkan atau didebit
  • An ENTRYmemiliki satuPAYEE
  • Sebuah ENTRYdapat dikaitkan denganBUDGET CATEGORY

  • A CREDITmemiliki jumlahENTRY

  • A CREDITmemiliki deskripsiENTRY
  • A CREDITdapat dijadwalkan di masa mendatang
  • A CREDITdapat berulang dalam frekuensi dan atau jumlah

  • A DEBITmemiliki jumlahENTRY

  • A DEBITmemiliki deskripsiENTRY
  • A DEBITdapat dijadwalkan di masa mendatang
  • A DEBITdapat berulang dalam frekuensi dan atau jumlah

  • A PAYEEmemiliki nama

  • A BUDGETmemiliki banyakBUDGET CATEGORIES

  • A BUDGEThanya dapat dikaitkan dengan satu bulan kalender

  • A BUDGET CATEGORYbisa mengandung banyakENTRIES

  • A BUDGET CATEGORYmemiliki nama
  • A BUDGET CATEGORYmemiliki BUDGETjumlah

  • A FORECASTmemiliki tanggal mulai

  • A FORECASTmemiliki tanggal akhir
  • A FORECASTmemiliki saldo awal
  • A FORECASTmemiliki banyakFORECASTED DAYS
  • A FORECASTmemiliki satuFORECASTED BUDGET

  • A FORECASTED DAYmemiliki satu tanggal

  • A FORECASTED DAYdapat memiliki banyakFORECASTED DEBITS
  • A FORECASTED DAYdapat memiliki banyakFORECASTED CREDITS

  • A FORECASTED DEBITmemiliki jumlah

  • A FORECASTED DEBITmemiliki deskripsi
  • A FORECASTED DEBITmemiliki aFORECASTED BUDGET CATEGORY
  • A FORECASTED DEBITmemiliki satuPAYEE
  • A FORECASTED DEBITbisa terulang kembali

  • A FORECASTED CREDITmemiliki jumlah

  • A FORECASTED CREDITmemiliki deskripsi
  • A FORECASTED CREDITmemiliki aFORECASTED BUDGET CATEGORY
  • A FORECASTED CREDITmemiliki satuPAYEE
  • A FORECASTED CREDITbisa terulang kembali

  • A FORECASTED BUDGETmemiliki banyakFORECASTED BUDGET CATEGORIES

  • A FORECASTED BUDGET CATEGORYdapat memiliki banyakPAYEES

  • A PAYEEmemiliki nama

Contoh data

+----------------+----------+------------------+----------------+---------------+--------------+------------------+
| 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 |
+----------+-------------+--------------+---------------+-----------------+------------------+

Desain Basis Data Saat Ini

Saya pikir akan sangat membantu untuk mengetahui MENGAPA saya melakukan sesuatu sehingga Anda dapat memahami logika dan alasan saya.

Revisi4-Prakiraan

  • Setiap Anggaran dapat berisi lebih dari 1 Kategori Anggaran. Saya menambahkan isActivekolom pada keduanya Budgetsdan BudgetCategoriesjika saya ingin mengaktifkan kembali anggaran atau kategori anggaran yang berbeda.
  • Saya memisahkan transaksi menjadi dua tabel split yang sangat mirip Debitsdan Creditsketika saya melihat ada dua jenis transaksi.
  • Untuk mengizinkan dan melacak transaksi Terjadwal atau Berulang, saya membuat ScheduledTransactionstabel yang memungkinkan saya memiliki dua jumlah berbeda, jumlah yang diharapkan ScheduledTransactionsdan jumlah aktual dalam salah satu Debitsatau Credits.

Revision4-Main

  • Saya pikir setiap perkiraan akan membutuhkan tanggal mulai dan berakhir serta saldo awal.
  • Setiap hari perlu diprediksi untuk dapat menentukan jumlah Debit dan Kredit.
  • Saya pikir saya bisa menggunakan tabel lain dan menambahkan beberapa Kolom isForecasted dan itu akan bekerja sama. Saya memutuskan untuk tidak pergi ke rute itu untuk memisahkan keduanya jika ada perubahan yang perlu dilakukan serta jika ini adalah aplikasi skala besar membaca dan menulis perkiraan besar ke dalam tabel yang sama dengan transaksi aktual yang saya pikir akan menyebabkan log masalah kinerja.

hanya pemikiran apakah Anda memerlukan kolom metadata di setiap tabel seperti ketika baris disisipkan, siapa yang menyisipkannya, saat terakhir diperbarui, siapa yang memperbaruinya, proses mana, dll?
Biju jose

Karena ini untuk penggunaan pengembangan pribadi, saya tidak perlu itu.
Jon H

1
Aturan skema dan normalisasi tergantung pada bagaimana Anda memilih untuk memodelkan masalah. Secara tradisional Anda akan memiliki tabel terpisah untuk aktual, anggaran, dan perkiraan. Tetapi Anda bisa memiliki semuanya dalam satu tabel dengan atribut atau bendera untuk menunjukkan perbedaan. Sama dengan DR / CR. Tabel yang sama tetapi gunakan nilai +/- untuk menunjukkan I / O. Setelah Anda beralih ke akuntansi entri ganda, Anda perlu kedua sisi persamaan untuk menyeimbangkan dan membuat akun. Apakah Anda akan sejauh itu?
Sir Swears-a-lot

1
Saya pikir ini adalah proyek yang sangat ambisius untuk ditangani dengan tujuan belajar tentang database. Db Skema desain dan normalisasi adalah satu hal, pencatatan yang akurat adalah hal lain, akuntansi dan perkiraan bahkan lebih kompleks lagi. Yang mana prioritas Anda?
Sir Swears-a-lot

@ SirSwears-a-lot Ya saya tidak akan sejauh itu. Pikirkan tentang hanya dapat melacak keuangan pribadi Anda ke berbagai kelompok anggaran dan dapat memproyeksikan sederhana bagaimana jika skenario seperti ... Bagaimana jika saya mendapat pembayaran mobil baru dan pergi berlibur 4 bulan keluar? Seperti apa rasio pendapatan saya terhadap frekuensi minggu ke minggu atau bulan ke bulan. Atau Bagaimana jika saya mengubah Anggaran Belanjaan Saya dari 500 menjadi 600?
Jon H

Jawaban:


2

Secara umum: Saya akan MULAI dengan daftar pertanyaan yang ingin saya jawab. Suka:

Siapa yang paling saya bayar? Apakah saya membayar tagihan pengangkutan limbah bulan ini? Apa persyaratan uang tunai saya untuk bulan ini? Apakah saya perlu keluar dan membunuh barang untuk makanan?

Sifat pertanyaan-pertanyaan ini harus mendorong desain skema.

Konon, skema ini terlihat cukup bagus.

Saya setuju dengan gagasan bahwa debit dan kredit bisa dalam satu tabel.


1

Saya akan mengidentifikasi penerima pembayaran, dalam hal anggaran dan jenis akun. Katakanlah Anda perlu mendaftar atau berkonsultasi dengan penerima pembayaran. Saya juga akan memiliki kolom aktif untuk penerima pembayaran. Mungkin menyenangkan mengetahui akun mana yang membayar anggaran berapa di masa mendatang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.