gpt4 book ai didi

mysql - 在 MySQL 列中存储整数数组的最有效方法是什么?

转载 作者:IT老高 更新时间:2023-10-29 00:09:02 25 4
gpt4 key购买 nike

我有两张 table

答:

plant_ID | name.
1 | tree
2 | shrubbery
20 | notashrubbery

乙:

area_ID | name    | plants
1 | forrest | *needhelphere*

现在我希望该区域以特定顺序存储任意数量的植物,并且某些植物可能会出现多次:例如 2,20,1,2,2,20,1

存储这一系列植物的最有效方法是什么?
请记住,我需要做到这一点,以便如果我执行搜索以查找包含植物 2 的区域,我不会得到例如 1,20,232,12,20(以 0 开头的填充?)什么会是对此的查询吗?

如果有帮助,让我们假设我有一个包含不超过 99999999 种不同植物的数据库。是的,这个问题与植物无关....

奖励问题是时候离开 MySQL 了吗?有更好的数据库来管理这个吗?

最佳答案

如果您要同时按森林和植物进行搜索,听起来您会受益于完整的多对多关系。丢弃您的 plants 列,并创建一个全新的 areas_plants 表(或您想要的任何名称)来关联这两个表。

如果区域 1 有植物 1 和 2,区域 2 有植物 2 和 3,您的 areas_plants 表将如下所示:

area_id | plant_id | sort_idx
-----------------------------
1 | 1 | 0
1 | 2 | 1
2 | 2 | 0
2 | 3 | 1

然后,您可以从任一方查找关系,并使用简单的 JOIN 从任一表中获取相关数据。无需在 LIKE 条件下搞清楚它是否在列表中,废话,废话,讨厌。我去过那里是为了遗留数据库。没有什么好玩的。充分利用 SQL。

关于mysql - 在 MySQL 列中存储整数数组的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3261706/

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