私はリレーショナルデータベースについてもっと学びたいと思っており、実際に何かをするために学ぶより良い方法はないと思いました。私は個人的な予算の会計と予測を見る個人的な試みをすることにしました。これまでにいくつかの調査を行ったので、現在のデータベースの設計と正規化について洞察を得たいと思います。
現在のデータベース設計に関するあなたの考えと提案は何ですか?私はあなたが私を助けるのをよりよく助けるために以下のいくつかの情報を含めました:)
開示:これは個人的なプロジェクトです。宿題や仕事のためではありません。
銀行ACCOUNT
には、多くのENTRIES
を含めることができます
ENTRY
は、CREDIT
またはDEBIT
のいずれかです。
ENTRY
には、貸方または借方に記入された日付がありますENTRY
にはPAYEE
が1つありますENTRY
はBUDGET CATEGORY
に関連付けることができます
CREDIT
には、ENTRY
の量があります
CREDIT
にはENTRY
の説明がありますCREDIT
は将来的にスケジュールできますCREDIT
は、頻度や量で繰り返し発生する可能性があります
DEBIT
には、ENTRY
の量があります
DEBIT
にはENTRY
の説明がありますDEBIT
は将来的にスケジュールできますDEBIT
は、頻度や量で繰り返し発生する可能性があります
PAYEE
には名前があります
BUDGET
には多数のBUDGET CATEGORIES
BUDGET
は、1つのカレンダーにのみ関連付けることができます。
BUDGET CATEGORY
には多くのENTRIES
を含めることができます
BUDGET CATEGORY
には名前がありますBUDGET CATEGORY
にはBUDGET
の金額があります
FORECAST
には開始日があります
FORECAST
には終了日がありますFORECAST
には期首残高がありますFORECAST
には多数のFORECASTED DAYS
FORECAST
にはFORECASTED BUDGET
が1つあります
FORECASTED DAY
には単一の日付があります
FORECASTED DAY
には多数のFORECASTED DEBITS
を含めることができますFORECASTED DAY
には多数のFORECASTED CREDITS
を含めることができます
FORECASTED DEBIT
には金額があります
FORECASTED DEBIT
には説明がありますFORECASTED DEBIT
にはFORECASTED BUDGET CATEGORY
がありますFORECASTED DEBIT
には単一のPAYEE
がありますFORECASTED DEBIT
は繰り返し発生する可能性があります
FORECASTED CREDIT
には金額があります
FORECASTED CREDIT
には説明がありますFORECASTED CREDIT
にはFORECASTED BUDGET CATEGORY
がありますFORECASTED CREDIT
には単一のPAYEE
がありますFORECASTED CREDIT
は繰り返し発生する可能性があります
FORECASTED BUDGET
には多数のFORECASTED BUDGET CATEGORIES
があります
FORECASTED BUDGET CATEGORY
には多くのPAYEES
を含めることができます
PAYEE
には名前があります
+----------------+----------+------------------+----------------+---------------+--------------+------------------+
| 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 |
+----------+-------------+--------------+---------------+-----------------+------------------+
私が何かをした理由を知っておくと、私の論理と推論を理解できるので役立つと思いました。
isActive
とBudgets
の両方にBudgetCategories
列を追加しました。Debits
とCredits
に分けました。ScheduledTransactions
の期待値とScheduledTransactions
またはDebits
の実際の量の2つの異なる金額を設定できるCredits
テーブルを作成しました。より一般的には、まず、回答したい質問のリストから始めます。お気に入り:
誰が一番払っているの?今月、下水道料金を支払いましたか?今月の現金の要件を教えてください。外に出て食べ物を殺す必要がありますか?
これらの質問の性質により、スキーマの設計が促進されます。
とは言っても、このスキーマはかなりよく見えます。
私は借方と貸方が単一のテーブルにある可能性があるという考えに同意します。
予算とアカウントの種類の観点から、受取人を特定します。受取人をリストまたは相談する必要があるとします。また、受取人のアクティブな列があります。今後、どのアカウントがどの予算を支払うかを知るのはいいことです。