Java:以多对多关系处理大量数据

时间:2018-10-17 09:30:09

标签: java hibernate spring-boot jpa postgis

我目前在后端遇到问题,产品种类繁多,产品数百万,商店和库存数据不多。

我的用例: 我必须将商店,产品和库存数据同步到我的数据库中,然后根据过滤器,orderBys,用户位置和传递的搜索文本对其进行查询。我需要存储哪种产品在哪个存储中可用,并每隔几分钟更新一次此数据。我需要建立一个合适的全文搜索,使我还可以根据相关性对产品进行排序(可能是休眠搜索?)

示例请求: 根据搜索文字,过滤器,orderBys,用户的位置以及指定要包括哪些商店的区域来获取所有产品。在这种情况下,不仅要获得所有产品,还要获得商店以在地图上显示它们或计算距离。

想法/可能性:

    商店和产品之间的
  1. 一对多关系以及一个单独的关系 可用性表 问题:导致庞大的多对多数据库,无法在合理的时间(> 10秒)内加入
  2. 商店和产品之间的
  3. 一对多关系,其可用性存储在nxm表中
    • 问题:导致庞大的多对多数据库,无法在合理的时间(> 10秒)内加入
    • 问题:存储要花一些时间+可用性更新是一个巨大的问题
  4. 带有“ ;;”的字符串产品中
    • 问题:无法使用postGIS方法按商店位置排序 -问题:可能真的很慢
    • 问题:没有联接就不会映射可用性
  5. 在产品中购买json([{“ id”:,价格:1,数量:12,位置:POINT(x,y)},{…}] -问题:无法按商店位置排序
  6. 将产品ID存储在商店中的json中-问题:需要根据查询而不是商店来检索产品

堆栈:

  • java 8
  • 弹簧靴
  • jpa,休眠
  • postgreSQL / postGIS

有人可以给我提示或分享一些解决方法吗?

0 个答案:

没有答案