ban*_*skt 5 mysql database database-design
我想设计一个 Web 应用程序来跟踪组织成员的财务状况。某些功能与Splittr非常相似。我使用 MWE 数据库图表定义我的要求:
(注意每个用户如何定义他们的共享金额,以及自己的共享费用类别。UserShare 表使用复合主键。)
问题:我必须将用户与他们的 3 个个人“财务”表和3N“SharedExpense”表(其中N是用户所属的“共享费用组”的数量)相关联。
尝试的解决方案:
多个数据库。每个用户的“财务”表都有一个唯一的数据库。每个“共享费用组”在服务器上都有一个唯一的数据库。然后,我可以将一个主数据库中的用户与以下四个紫色表相关联:

缺点:外键来自不同的数据库,需要备份的数据库数量较多。
多桌。我可以在同一个数据库中创建所有表,并将它们与四个绿色主表相关联:

在这里,表的数量是一个潜在的问题。如果有M用户和N“共享费用组”,那么就会有3M + 3N桌子!
问题:是否有更优雅、更简单的数据库设计?如果不是,以上两种解决方案中哪一种更好,为什么?
相关的先前 StackOverflow 问答链接:
总结中要描述的所有挑战太多了,但我会挑选一些。
恕我直言,但我会重新开始。将您拥有的内容视为良好的试运行,然后使用您拥有的其他信息重新开始。
阅读 3NF,也许还有一些更高的归一化水平。虽然 3NF 几乎是最低规范化,但更高级别变得越来越专业化,可能适合也可能不适合您的设计。
您对数据和业务了解得越透彻,您的设计就会越好,最终产品也会越好。
| 归档时间: |
|
| 查看次数: |
5950 次 |
| 最近记录: |