【发布时间】:2019-10-25 23:35:32
【问题描述】:
我正在努力设计我的数据库。我的数据库涉及将用于计算用户余额的多种金融交易。不同的事务在结构上是不同的,目前我将它们存储在不同的表中。在计算用户余额时,我意识到这是一团糟,因为我需要从多个表中选择许多不同的不一致行并将它们全部加起来。所以我想如果我创建一个表格来总结交易(例如金额和拥有它的用户 ID)并引用更详细的记录并有一个字段来指定它是哪种交易。事实证明:我试图实现的东西被称为“多态关联”,没有办法用 MySQL 以可靠的方式实现它。有一些解决方法,但它们都不能保证数据完整性达到我想要的水平。最后,我非常绝望,开始寻找其他 DBMS,但它们似乎都不适合我的情况。
你有什么建议吗?也许,我不应该害怕编写庞大且不断增长的函数来计算用户余额吗?或者我应该选择在 MySQL 中建模多态关联的最佳选择,并留下数据不一致的轻微风险?或者也许有 DBMS 可以解决我的问题而无需变通方法?
我现在的结构 一些事务直接与用户链接,而另一些则通过另一个表。我的目标是计算单个用户的所有事务的总和,要获取每种事务的所有行,这将是一个非常大且不断增长的 SQL 语句。
也就是说,我希望有一个表以便于计算,但该表必须强制它呈现的记录存在。
【问题讨论】:
-
如果您能提供一张表格及其相互关系的简单图表,将会非常有帮助。
-
请use text, not images/links, for text--including tables & ERDs. 转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图片中包含图例/键和说明。
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。
标签: mysql database database-design polymorphic-associations