存储数据库中的对象与推荐系统中的引用?

时间:2018-04-25 22:51:20

标签: database machine-learning database-design artificial-intelligence

对于具有由机器学习驱动的推荐系统的Web应用程序,我们正在考虑在对象之间存储引用的位置;在我们的数据库表中或在我们的推荐系统内(通过API访问)?

简化案例

系统的工作原理如下:

  1. 用户选择一种或多种成分

  2. 发送给推荐API的选定成分的相应uid

  3. API返回成分ID列表(推荐)

  4. 从数据库中检索的成分列表数据(例如名称,图像等)并显示在网页上

  5. 在同一网页上,对于每个成分列表,以下参考信息应显示:

    • 类别

    注意:这是一个过于简单的例子。实际上,我们必须处理数百个这样的引用

    传统解决方案 - 在表格中存储引用

    在这种情况下,API simple返回推荐成分id的列表:

    {
        recommendations: [ingredient1, ingredient2 ...] 
    }
    

    这些id用于从我们的数据库中检索成分信息和类别信息(名称,图像等......):

    - ingredient
        - id
        - name
        - imageUrl
        - categoryId --> Reference to category table
    
    - category
        - id
        - name
        - iconUrl
    

    替代解决方案 - 在推荐系统中存储参考

    在这种情况下,API将发回成分对象列表 incl。参考

    {
        ingredientId1: {
            categoryReference: categoryId
            ...
        },
        ingredientId2: {
            categoryReference: categoryId
            ...
        }
        ...
    }
    

    这样可以在没有引用的情况下保持数据库简单:

    - ingredient
        - id
        - name
        - imageUrl
    
    - category
        - id
        - name
        - iconUrl
    

    我们对这种“替代”解决方案的喜欢之处在于它使得更改参考变得非常容易。数据库表中没有数百个参考列可供维护。

    根据您过去的经历,非常热衷于倾听您的想法。

    提前致谢

0 个答案:

没有答案