javascript—优化地将多个数据库项计算到一个配置中

cdmah0mi  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(269)

早上好!我正在做一些优化的事情…我找不到最好的答案,所以我想我应该问问你们这些天才。提前谢谢你的想法!永远感激这个社区:)
我们有一个数据库,里面有大约150个项目,可能还有更多(还没有完成)的各种小部件(说来话长,为了简单起见把它省略了)。这些项有3个值:我们将其称为值a、值b和值c。所以db中这个视图的一个例子可以是这样的(顺便说一句,这是mysql,但是为了从结构上展示它,我们现在使用json):
{“itemid”:1,“a”:50,“b”:20,“c”:4}
{“itemid”:2,“a”:10,“b”:40,“c”:10}
{“itemid”:3,“a”:16,“b”:9,“c”:30}
{“itemid”:4,“a”:4,“b”:3,“c”:14}
等等…150多次。
然后我们有一个用户,他有一个项目a,b和c的特定号码,他们需要与这些项目的组合见面。例如,假设用户编号是a:26b:49c:40。我们希望在数据库中找到一个项目的组合,使它们符合这个数字。在上面的项目列表示例中,项目2和3正好满足这个要求。
此外,我们可以使用半比例的项目与乘数在四分之一和一半。因此,例如,用户总数可以是55、40和9。您可以使用item1,也可以使用item2的一半来完成这个任务。
这基本上就是我们要做的。我认为可能有很多方法可以做到这一点,但确保代码效率是溢价是很重要的,因此,我不只是在路上跌跌撞撞与任何方式首先工作,我想一些外部的专业知识/思维过程,看看你会怎么做。
再次感谢您的帮助!!

vx6bjr1n

vx6bjr1n1#

恐怕,但我认为这个问题可能无法有效地解决。你的问题和背包问题很相关。具体来说,您可能需要研究多维背包问题。
因为您的输入只包含整数,所以您可能能够找到它的伪多项式解,但我对此表示怀疑。
只有150个元素(如果允许半个元素和四个元素,则为x4)。根据查询的大小,您可能能够在合理的时间跨度内用暴力解决问题。

相关问题