发布网友 发布时间:2022-04-11 01:28
共1个回答
热心网友 时间:2022-04-11 02:58
首先LZ这么复杂的问题,就给这点分,少说也给个几万财富,或是支付点咨询费。O(∩_∩)O
=========================================================================
首先你这个就10万单品,不是太多。
使用中间表聚集的方式就可以了,但是又要兼顾实时性所以我就用索引视图了,如果数据库版本低可以维护一个表,其实维护表可以用外键。更好一些。
也就是说先聚合管理内码,然后是商品编号。这个顺序很重要。甚至影响你的效能。
本人的表结构,管理内码我这个都是 2+2+2 的格式,你的是 2+1+1 的格式。
创建索引视图:
看好上边的顺序,是管理分类在前,商品编号在后。
好了。
构建SQL
with PNoSec(PNO) aswith PNoSec(PNO) as
(
select '100409%' union all
select '040205%' union all
select '010107%'
)
select
P.*
from PNoSec A
inner join dbo.VPNoProRel B on(B.PNO like A.PNO)
inner join dbo.Proct P on(B.PID=P.ID)
where P.Name like '欧莱雅%'
你的程序就是构建SQL片断(管理分类不能有重复)
如果数据库版本低,可以使用临时表的方式。这个你自己拿捏吧。
以上方案小巧灵活,应对几十万单品不在话下。