啊!明白了!有什么想法它会是什么样子吗?我们一直在寻找让这里变得更轻松的方法 ![]()
当然!像 Northwind(MS Access 的著名之处!)那样的数据模型将是极好的。甚至可能有一个工具可以通过检查 Postgres 模式来生成一个。
你能像跟新手说话一样分享一下吗?比如:
- 添加这个能帮助解决什么问题?
- 如果添加了,你期望看到它如何被使用?它会是什么样子?
我基本上是采纳你的建议,并询问更多细节(你能给多少就给多少
),以便我们能为下一个接触到的数据架构师改善体验。我对数据没有背景,所以你的详细建议将很有帮助 ![]()
哈哈 Osioke,
说得太对了!我认输……
所以,大多数从事数据库工作的人(不仅仅是数据架构师!开发人员也是!)都觉得有一个数据模型来展示各种表是如何相互连接的非常有帮助。
例如,以我的查询为例;),我需要关于某个用户的几条信息——我需要关于一个用户的以下信息:
- 是否(或不在)某个特定组中
- 已解决主题
- 在某个日期范围内
要回答上述问题,我需要用户表、用户操作表和组表。数据模型会告诉我,可以通过 id/user_id 将用户链接到用户操作,并通过 primary_group_id/id 直观地将用户链接到组。
这有助于可视化不仅可用的数据,还有如何连接它们,特别是当存在一些冗长的查询时。
是的,你可以点击数据浏览器中的每一个表来找出可用的字段,并记下来以免忘记,但对于我们中的一些人来说,拥有一个数据模型可能更人性化一些 ![]()
啊!明白了!![]()
我不是技术背景,所以之前不太清楚。不过我确实觉得有必要,所以没问题。数据模型确实会有帮助。让我看看能做些什么。![]()
在此期间,我已将本次对话移至 Contribute > Site feedback 分类下的新话题中,以便保持其他讨论的整洁。
那太棒了,谢谢!
所以我正在和团队讨论这个问题,由于种种原因,这并不是一件简单的事情。我们还把它移到了 Contribute > Feature 频道,因为那里更能体现这项工作的具体内容。
目前,我们在内部处理数据的人员主要使用源代码中提供的模型:
我也看了一下 Northwind 数据模型:
那个模型确实很容易理解,而且可以在一张纸或一个屏幕上展示清楚。总共只有 13 张表。
与 Discourse 相比,我们的表要多得多,超过 180 张甚至更多,要把这些可视化出来……那将是一段漫长的旅程。特别是因为还有来自插件的表(而且这些表因安装而异),以及 *_custom_fields 表中的数据,如果你真的想要一个完整的视图,这些也应该包含在内。
此外,由于我们的数据库设计方式,我们无法使用大多数数据建模工具,我们需要找到一个适用于 ActiveRecord 模型的工具。我认为这也让事情变得棘手,所有这些关于数据的讨论都让我感到有些吃力。![]()
但这并不意味着我们不想做这件事,这只是一点评论。我很想听听你或任何其他人在如何改进这方面提出的建议。
![]()
它确实没什么用,因为它的体积庞大,缺少外键,而且我们几乎没有将逻辑留给关系数据库管理系统 (RDMS),这意味着不阅读 Discourse 源代码就很难理解 Discourse 数据库。
但如果你真的需要一个,RubyMine 可以为你生成它。
您可以使用 rails-erd 生成一个包含关系的图:GitHub - voormedia/rails-erd: Generate Entity-Relationship Diagrams for Rails applications
不过,不确定这有多大用处。
@lju 我希望我们所有的解释都能有所帮助,特别是加上了额外的背景信息。我将在未来一两天内关闭此问题。如果你仍然觉得需要一些额外的细节,请随时提出。
太棒了!几天后你就会有了
感谢你对此的关注。
大家好:
所以我的观点是,数据模型会很有用,但我们不必包含所有表。我怀疑可能存在“关键”的 15-25 个左右的表,这些表占所有查询的 90%/人们正在寻找的内容。事实上,看看提供的各种表——可能会根据您想要探索的查询/数据的类型创建一系列数据模型。
在接下来的几天里,我可以尝试整理出我认为最常被查询的表——这不会是广泛的研究,只是一个初步的尝试。我相信在“数据探索器”类别中提出的各种问题也会揭示出热门的表。
还可以创建另一个图表来表示感兴趣的“区域”,以方便导航可用数据的不同部分。
这说得通吗?
祝好,
Lju
Data explorer 已经在查询编辑 UI 面板中将最重要的 9 个表列在最前面,您只需单击一下即可查看所有表的列结构和类型:
所以我们可以将这9个表变成一个简化的数据模型?
![]()
好的,请分享结果!
哇,这太大了;这是我见过的最大的数据库模式之一
这是用 https://dbdiagram.io 创建的吗?可以分享一下图表的公共网址吗?
我对这些表之间的关系和连接更感兴趣
users、
user_options、
api_keys、
user_api_keys、
user_auth_tokens、
user_auth_token_logs、
notifications
谢谢
非常有帮助,但如果能有一个可共享的 URL 就更好了,这样我们就可以看到表关系以及表上的主键/外键。
架构中是否存在一对一关系?我想知道,特别是 users 和 user_options 表之间的关系。
有人愿意根据模式图帮助我了解这些表之间的关系吗?
users,
user_options,
api_keys,
user_api_keys,
user_auth_tokens,
user_auth_token_logs,
notifications
想知道是否存在一对一的关系。
将不胜感激……谢谢
主要是 1 对 N,因为用户有多个通知、身份验证令牌等。
user_options 是 1 对 1。

