gpt4 book ai didi

mysql - 相关键/值表索引/搜索

转载 作者:行者123 更新时间:2023-11-30 22:33:55 25 4
gpt4 key购买 nike

我有与表“element_parameters”相关的表“elements”。 element_parameters 表具有键/值结构。键和值是动态的,它们可以由用户或某些软件创建,所以我不能在“元素”表中预先定义它们。

例如我有元素“花”和“车”:

elements
--------
flower
car

element_parameters
------------------
element | key | value
flower | smell | soft
car | manufacturer | fiat
flower | color | red
car | wheels | 4

如您所见,可以有任何键和任何值。

但我经常需要通过参数来查找元素。这就是问题。一个元素可能有 10000 多个参数。所以如果我有 100 个元素,每次我想找到某个元素时,我都必须搜索 1000000 个参数。我不能在一个查询中执行此操作,因为首先我必须找到适合我条件的所有参数,按参数 ID 对它们进行分组,然后在元素表中搜索这些 ID。

有没有一些搜索引擎,我可以在其中将元素及其参数合并并索引到“一行”?对于这种情况,Elasticsearch 是个不错的选择吗?也许还有其他方法可以解决?

谢谢。

最佳答案

我认为你应该像这样修改你的数据库:

elements
-----------
id | name
1 | flower
2 | car


element_parameters
-------------------------------------------------
element_id | parameters
1 | {"color":"red","smell":"soft"}
2 | {"manufacturer": "fiat", "wheels":3}

您可以轻松找到任何元素的参数:

$id = 1;
$element = Element::find($id)->load('ElementParameters')->get();
$paremeters = json_decode($element->ElementParameters);

关于mysql - 相关键/值表索引/搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33080994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com