将外键保存在订单数据库中的良好做法

将外键存储在orders数据库中是否是一种好习惯? 并使用填充来检索对象信息?

在我们的开发环境中,我们使用NodeJ和MongoDB并使用猫鼬进行连接。猫鼬可以自动填充产品详细信息。

但是当产品被删除时,订单被弄乱了。

让我举例说明

{
    id: 'ORDER0001',customer: 'John Smith',products: [
           {
              productid: "45645849",qty: 1,total: 550    
           }
           {
              productid: "1234895468",qty:2,total: 1000
           }
    ]
} 

填充后,它变为:

{
    id: 'ORDER0001',products: [
           {
              productid: {
                  id: "45645849",name: "HP Notebook XYZ"
                  price: 550,desc: "Bla bla bla..."
              },total: 550    
           }
           {
              productid: {
                  id: "1234895468",name: "LG 32 Monitor"
                  price: 500,total: 1000
           }
    ]
} 

看起来不错。但是,当数据库变大时,我们也可以信任猫鼬吗?目前,我对此表示怀疑,并在思考未来。也许将产品名称存储为产品数组中的字段。为了获得性能。

保存到数据库中是否有好的做法?

你们是怎么做到的?谢谢

laosizhxy 回答:将外键保存在订单数据库中的良好做法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1431023.html

大家都在问