首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预测评审数据库的设计

预测评审数据库的设计
EN

Database Administration用户
提问于 2018-11-04 15:55:10
回答 2查看 1.2K关注 0票数 9

我正在努力学习更多关于关系数据库的知识,并且我认为没有更好的方法来学习然后去做一些实际的事情。我决定亲自尝试一下个人预算会计和预测。到目前为止,我已经做了一些研究,并想了解一下我目前的数据库设计和规范化。

你对我目前的数据库设计有什么想法和建议?为了更好地帮助你帮助我,我在下面列出了一些信息:)

披露:这是一个个人项目。不是为了作业也不是为了工作。

业务实况

  • 银行ACCOUNT可以有许多ENTRIES
  • ENTRY可以是CREDIT,也可以是DEBIT
  • ENTRY有一个被记入或借记的日期。
  • ENTRY只有一个PAYEE
  • ENTRY可以与BUDGET CATEGORY相关联。
  • CREDIT有一定数量的ENTRY
  • CREDIT有对ENTRY的描述
  • 将来可以安排一个CREDIT
  • CREDIT可以在频率和数量上重复发生。
  • DEBIT有一定数量的ENTRY
  • DEBIT有对ENTRY的描述
  • 将来可以安排一个DEBIT
  • DEBIT可以在频率和数量上重复发生。
  • PAYEE有一个名称
  • BUDGET有许多BUDGET CATEGORIES
  • BUDGET只能与一个日历月相关联。
  • 一个BUDGET CATEGORY可以包含许多ENTRIES
  • BUDGET CATEGORY有一个名称
  • BUDGET CATEGORY有一个BUDGET
  • FORECAST有一个开始日期
  • 一个FORECAST有一个结束日期
  • FORECAST有一个起始平衡
  • FORECAST有许多FORECASTED DAYS
  • FORECAST只有一个FORECASTED BUDGET
  • 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有一个名称

样本数据

代码语言:javascript
复制
+----------------+----------+------------------+----------------+---------------+--------------+------------------+
| 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 |
+----------+-------------+--------------+---------------+-----------------+------------------+

当前数据库设计

我想知道为什么我会做一些事情,这样你就可以理解我的逻辑和推理了。

  • 每个预算可以包含超过一个预算类别。为了重新激活不同的预算或预算类别,我在BudgetsBudgetCategories上都添加了一个D156列。
  • 我将事务划分为两个非常相似的表,DebitsCredits,正如我所看到的,有两种类型的事务。
  • 为了允许和跟踪调度或重复发生的事务,我创建了一个ScheduledTransactions表,它允许我有两个不同的金额,一个是ScheduledTransactions中的预期金额,另一个是DebitsCredits中的实际金额。
  • 我估计每个预测都需要一个开始和结束日期,以及一个开始平衡。
  • 每一天都需要进行预测,以确定借方和贷项的总和。
  • 我想我可以使用其他表并添加几个isForecasted列,而且它也会同样工作。我决定不走这条路,以便在需要进行任何更改时,将两者分离开来。如果这是一个大规模的应用程序,那么在与实际事务相同的表中读取和写入大量预测,我认为这会导致性能问题日志。
EN

回答 2

Database Administration用户

发布于 2019-02-22 16:11:42

更笼统地说,我首先要回答的是一系列问题。比如:

我付的钱最多的是谁?这个月我付了排污费吗?这个月我需要多少现金?我需要出去吃东西吗?

这些问题的性质应该驱动模式的设计。

也就是说,这个模式看起来相当不错。

我同意借方和贷方可以放在一张桌子上的想法。

票数 2
EN

Database Administration用户

发布于 2018-11-08 19:34:54

根据预算和账户类型,我将确定受款人。说你需要列出或咨询收款人。我还将为受款人设置一个活动列。知道什么账户支付未来的预算可能是件好事。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/221752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档