🤔🤔数据库如何实现动态/多条件/多逻辑关系的复杂查询

268 天前
 LuffyPro

现在想通过 mysql 之类的数据库实现,查询条件为树状的查询,要求大概这样:

A ∪ B
├── B ∩ C
│   ├── C ∪ D
│   └── D
└── C
1278 次点击
所在节点    数据库
7 条回复
xuanbg
268 天前
什么叫做树状的条件?
xhawk
267 天前
首先梳理一下你的想法,其实是想 先根据条件 1 条件 2 查询,查询的结果再根据条件 3,4 查询,以此类推。

其实你这个查询本身就是树形查询,本身就是 and 操作,最多是对所有步骤优化一下,让一次查询快点,完全没必要搞成这种树形分布的,你这个查询,传统的二维数据库会变成超级大的 io 开销。

的确想实现,要切换成多维数据库,比如 oracle essbase
LuffyPro
267 天前
@xuanbg
简单举个例子,需要实现的逻辑大致如附言图,每个查询都有纵向多条件查询,和横向单条件多级查询,最终 sql 如果拼一起类似一个树状的查询结构,并且树的深度不限(实际取决于业务,但一般也不会太夸张)

@goodhawk 嗯嗯,差不多,谢谢建议,确实,实现是一个,但重点是性能不能太拉跨😂。
guangming3055
267 天前
之前实现过类似的查询,用的是 ElasticSearch ,它的查询语法很适合你的需求
LuffyPro
267 天前
@guangming3055 是的,es 是考虑之一,不过基于我们现状,成本稍微高点,不过好奇,你们用 es 实现的类似需求,数据表现怎么样?
Akiya
267 天前
图数据库
LuffyPro
267 天前
@Akiya 谢谢回复,这个听起来不错。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1019612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX