使用 EF Core、ASP NET Core 和 SQL Server 的在线汽车配件商店数据库。
每天会向服务器上传一次一定数量的价目表。价目表可能包含相同的产品,但并非所有价目表都有交叉编号的产品。价目表是某个仓库中的货物清单;数据库应包含以下列:
Бренд
Наименование
Артикул
Цена
Количество
Номер склада
Кросс-номера(Некоторое количество строк через точку с запятой, для поиска взаимозаменяемых товаров)
最初,我制作了一张表,将每种产品的交叉数加载到一个单元格中,而不将它们分解为原子值。因此,在网站上,要搜索产品的类似物,您需要进入数据库,通过“品牌+文章”找到与该产品匹配的所有行,收集这些行中的所有交叉编号,然后再次查找匹配项与每个收到的交叉数并返回类似物 。
我以为下载新价目表后可以同步所有交叉号,即拿每个产品,通过“品牌+文章”找到类似的产品,将它们的交叉号合并成一行,去掉重复,然后分配给这个至两条产品线。解决方案非常缓慢,整个过程需要一整天的时间。
此外,在寻找问题时,我考虑了标准化,这对我来说似乎是一个解决方案,因为我只考虑搜索的效率。我从产品表中删除了跨号列,创建了一个单独的 CrossNumbers 表,它有三列 - Brand、Article、跨号(1 个值),每一行必须是唯一的(否则表中的行数将显着增加)。这样一来,对于每个跨号加载的时候,还需要检查数据库中是否有相同的行(3个值Brand+Article+Cross-number)。我使搜索有效,但现在价格表将整天加载)现在我陷入了死胡同。
如果有很多不必要的文字,我深表歉意。