我正在使用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吗?
感谢您的时间