从MySQL迁移到MongoDB如何构建db

时间:2015-08-17 21:02:57

标签: mongodb meteor nosql

我正在使用Meteor构建一个简单的测试应用,允许用户搜索最近的餐馆,查看菜单并订购食物。我只是真的使用过MySQL而且我不确定如何最好地存储数据。我想到的结构是:

restaurants: {
    untitledRestaurant: {
        name: "Untitled restaurant",
        menu: [
            starters: {
                name: "Starters"
                items: [
                    garlicBread: [
                        name: "Garlic bread",
                        price: 3.00
                    ],
                ]
            }
            mainCourses: {
                pizzas: "Pizzas"
                items: [
                    margherita: [
                        name: "Margherita",
                        price: 6.00
                    ]
                ]
            }
        ],
        branches: {
            regentStreet: {
                address: {
                    street: "1 Regent Street",
                    city: "Leeds",
                    county: "West Yorkshire"
                    postCode: "LS1234",
                    country: "UK",
                    coordinates: {
                        lat: 0.123456,
                        long: 0.123456
                    }
                }
            }
        }
    }
}

deliveryBoys: {
    andyWarhol: {
        name: "Andy WarHol",
        email: andy@warhol.io,
        mobile: 0123456789,
        address: {
            street: "2 Regent Street",
            city: "Leeds",
            county: ""West Yorkshire,
            postCode:LS1234 ,
            country: "UK",
            coordinates: {
                lat: 0.123456,
                long: 0.123456
            }
        },
        status: 0
    }

}

orders: {
    _id: {
        deliveryBoy: andyWarhol,
        restaurant: untitledRestaurant,
        branch: regentStreet,
        items: [{
            item: garlicBread
            amount: 2
        }, {
            item: margherita
            amount: 1
        }]
    }
}

正如你所看到的,我有一个餐馆集合,他们的分店(有lat / long来做“找到最近的餐馆”)和食品(除了“类型”,例如开胃菜,比萨饼,甜点...... )。

另一个系列是送货男孩的清单,因为在每个订单中我都想自动分配可用的送货员(后者从状态中读取)。

实际订单集合的最终集合。

我不确定几件事。首先:您如何看待结构?我应该把它制成更多的收藏品还是试着用更少的东西来制作呢?

ids怎么样?我正确定义了名称(菜单),然后是类型(启动器),然后是项目?我怎样才能更好地保存他们在订单集合中的引用?

当我添加餐馆或分支机构或送货员时,对于ID而言......我应该定义自己的ID吗?

感谢您的时间

0 个答案:

没有答案