我想设计一个网络应用程序来跟踪一个组织成员的财务情况。某些函数非常类似于斯普利特。我使用MWE数据库图定义了我的需求:
(请注意每个用户如何定义其份额的数量,以及共享费用的类别。UserShare表使用复合主键。)
The problem:我必须将用户关联到他们的3个个人“财务”表和3N
"SharedExpense“表( N
是用户所属的‘共享费用-组’的数量)。
尝试解决方案
缺点:外键来自不同的数据库,大量的数据库需要备份。
在这里,表的数量是一个潜在的问题。如果有M
用户和N
的共享费用组,那么就会有3M + 3N
表!
的问题是:是否有更优雅、更简单的数据库设计?如果没有,上述两种解决方案中哪一种更好,为什么?
链接到相关的,以前的StackOverflow问答
发布于 2018-11-29 10:27:02
在一个总结中有很多要描述的挑战,但我会挑出几个。
很抱歉直言不讳,但我会重新开始。将您拥有的作为一个良好的试运行,然后使用您所拥有的其他信息重新开始。
阅读3NF,也许还有一些更高的标准化水平。虽然3NF几乎是最小的规范化,但更高级别变得越来越专业化,并且可能适合或不适合您的设计。
你越了解你的数据和业务,你的设计就会越好,你的最终产品也会越好。
https://stackoverflow.com/questions/53540329
复制