首页新闻招聘找找看知识库

关于商城多条件搜索商品信息的问题

0
悬赏园豆:50 [已解决问题]

1.有A、B、C三张表,A是商品表,B是商品类别表、C是商品库存表。

2.有库存的商品才可以被搜索到。

3.搜索条件可以是商品名称(商品表只存有商品类别主键(可以根据主键筛选))、商品类别名称。

4.注商品表有25000多数据.

问这个搜索怎么查询?这个三张表设计的有什么问题?该怎么设计才方便搜索

时光城主的主页 时光城主 | 初学一级 | 园豆:126
提问于:2017-04-21 20:22
< >
分享
最佳答案
0

可以让库存信息与商品信息放在同一个表

收获园豆:50
编程点滴 | 小虾三级 |园豆:1225 | 2017-04-22 09:21

这个想法和我不谋而合,有时候为了需求可以用空间换去时间。我处理的方法是把所有搜索的关键字段全部冗余到库存表里面去,然后只查询库存表。

时光城主 | 园豆:126 (初学一级) | 2017-04-22 09:24

@时光城主: 这个可以,有时为了查询,会专门设计一个表存储查询条件

编程点滴 | 园豆:1225 (小虾三级) | 2017-04-22 09:26

@编程点滴: 哈哈,我自己负责一个小项目的升级、维护,遇到很多问题虽然都能解决但是不知道自己所用的方法是对是错。因为只有一个人连个交流的人都没有,感觉自己一直在闭门造车,所以把问题拿出了和大家讨论一下,讨论一下解决问题的思路。

时光城主 | 园豆:126 (初学一级) | 2017-04-22 09:31

@时光城主: 遇到问题,有那么多问题平台可以提问,大家都可以帮你参考参考

编程点滴 | 园豆:1225 (小虾三级) | 2017-04-22 09:32

@编程点滴: 也是。

时光城主 | 园豆:126 (初学一级) | 2017-04-22 09:34
其他回答(2)
0

写个连表查询,把关键的信息取出来就行。

龙行天涯 | 园豆:1701 (小虾三级) | 2017-04-21 22:33

链表查询虽然能实现但是效率太低反应时间太长

时光城主 | 园豆:126 (初学一级) | 2017-04-21 22:36

@时光城主: 效率怎么个低法了,你只取关键字段就好,不连表你只能分布查,你的搜索条件有商品名称、类别名称,而你传进来的值只有一个,还不知道传进来的值是商品名称还是类别名称,所以你的先去匹配商品,又去匹配类别,这样是不是更麻烦,效率更低。

该用的时候就得用,什么都觉得效率低,你还不如干脆把所有商品和类别都设计成一张表。

龙行天涯 | 园豆:1701 (小虾三级) | 2017-04-21 22:44

@龙行天涯: 查询本来就是链表查的但是效率实在太低,查询一次将近10s,根本不能用,而我又找不到很好的解决方案只能来求助了。

时光城主 | 园豆:126 (初学一级) | 2017-04-21 22:52

@时光城主: 就这么点数据,居然用10s时间。

请问你的查询语句怎么写的,以及你的搜索后的数据展示是如何的,不妨拿出来看看。

还有一种客观因素是你的硬件配置是不是低到了极点。

龙行天涯 | 园豆:1701 (小虾三级) | 2017-04-21 23:16

@龙行天涯: SELECT 
a.goods_id,
a.goods_name,
a.selling_price,
a.purchase_price,
a.bar_code,
a.picture 
FROM
t_supplier_goods_library a 
WHERE a.status = 1 
AND EXISTS 
(SELECT 

FROM
t_goods_stock b 
WHERE a.goods_id = b.goods_id 
AND b.stock_num > 0 
AND b.stock_org_id = 10047) 
AND (
a.goods_name LIKE '%奶%' 
OR a.brand_name LIKE '%奶%' 
OR EXISTS 
(SELECT 

FROM
t_goods_type b 
WHERE a.goods_type_id_2 = b.goods_type_id 
AND b.goods_level = 2 
AND b.goods_type LIKE '%奶%')
)

时光城主 | 园豆:126 (初学一级) | 2017-04-22 08:57

@龙行天涯: 

时光城主 | 园豆:126 (初学一级) | 2017-04-22 08:58

@龙行天涯: 

时光城主 | 园豆:126 (初学一级) | 2017-04-22 08:59
0

效率有多低?反应时间又多长?啥CPU,啥内存,啥硬盘?

怎么写的SQL语句?

25000个商品而已,又不是25亿商品...

爱编程的大叔 | 园豆:25447 (高人七级) | 2017-04-21 22:41

25000商品链表查询反应速度还是很慢的

时光城主 | 园豆:126 (初学一级) | 2017-04-21 22:53
   您需要登录以后才能回答,未注册用户请先注册