【发布时间】:2014-10-20 02:40:53
【问题描述】:
我正在使用一个传给我的数据库。它有大约 25 个表,以及一个非常有问题的查询系统,已经有一段时间不能正常工作了。我想,与其尝试对现有代码进行错误测试,不如从头开始。在我开始之前我想说,“我没有要求任何人为我构建代码”。我没那么懒,我只想知道,布置代码的最佳方式是什么?现有查询使用“JOIN”将所有表的结果组合在一个变量中,并将其吐入查询中。在显示此代码的其他问题中,有人告诉我,它太多了,而且错误太多,无法尝试找出导致中断的原因。
查询这些相互引用的表最有效的方法是什么?
示例:人选择汽车年份、品牌、型号。然后 PHP 收集该信息,并查询 SQL 数据库以查找哪些零件具有匹配的年份、车辆 ID 和零件兼容。然后它使用这些结果来提取具有匹配汽车型号 ID 或车辆 ID 的零件(因为数据库构建得非常草率,并比较所有不同的表以生成:零件、描述、价格、零件编号、sku 编号、任何零售商注释、轴距、传动系统兼容性等。
我已经为此工作了两个星期,我正在接近我的最后期限,几乎没有进展。我即将废弃他们的数据库,只输入一个星期的数据,如果更容易的话,重建他们的烂摊子,但如果我可以使用他们给我的现有一堆废话,并节省一些时间,我会更喜欢它。
做几个查询并比较结果,然后使用这些结果查询更多结果,然后像这样一步一步地做会更容易,还是一次比较所有内容更有效?
我应该使用 JOIN 并一次拉出所有表并进行比较,还是将输入传递给单个变量,然后将 PHP 传递给客户端的 javascript 以节省服务器负载?将代码分解以便我可以识别断点会更简单,还是使用一个长字符串会减少查询时间和服务器负载?这是一个非常复杂的问题,但我只是想确保没有太多回应要求对琐碎领域进行澄清。我主要是在寻求如何处理这种复杂情况的最佳建议。
【问题讨论】:
-
JOIN 是连接两个或多个表之间数据的标准方式
-
我看到 JOIN 在这种情况下非常有用,但它是否可以有效地用于 JOIN 并比较多个表中的多个值,索引交叉引用其他 24 个表中该行中的其他关联列而没有一个厘米?对于应该更简单的事情来说,这似乎有点过分了。我可以看到设置是如何有益的,但它的方式使得当一个项目添加到库存时,所有 25 个表都需要更新。这对我来说似乎很荒谬。
-
也许他们的语法是错误的。谁能给我一个以这种方式相关的代码的通用示例?获取yearID,与modelyear 表中的yearID 匹配,然后将yearID = 与model 表中的VID 匹配,然后将modelID 与make 表中的IdModel 匹配?这只是开始。不过,如果我可以进行比较,我可能可以通过足够的努力使整个查询正常工作。
标签: javascript php mysql database