我如何找出 Angular 2/Ionic 2 应用程序的数据模型
How do I figure out Data Model for Angular 2/Ionic 2 application
我正在使用 Typescript 在 Angular 2/Ionic 2 中开发旅行应用程序。我需要弄清楚如何为我的服务/对象建模。这个应用程序将有用户。
每个用户都可以创建一个整体行程。您可以将其命名为 "Europe 2016." 然后您可以添加多天。他们可能要旅行 14 天。他们每天都可以计划当天要做什么,包括 activity 几点钟、activity 在哪里等等……他们还可以查看天气、添加酒店信息等每一天。
大概看起来像(对不起,这很难看)
Trip: {
"name": "Europe 2016",
"tripPlans": [
{"day1": [{plan1: do something, time: 01000}, {plan2: do something else, time: 01000}}], "time": "0800", "date":"09/01"2016, hotel, weather},
{"day2": [{plan1: do something, plan2: do something}], "time": "0800", "date":"09/01"2016, hotel info, weather info}
]
}
还需要知道旅行的开始日期和结束日期。
我也可能想返回并查询用户组认为流行的内容,例如"most common activity in Gotham"
这是我花了 100 个小时学习编码后的第一个主要应用程序,它是我的个人项目,让我对学习感到兴奋。它解决了我的个人问题。我已经到了很难找到好的 examples/resources 来帮助我解决这个问题的地步。
我在框架选择上花费了很多时间,所以我想坚持下去。到目前为止,我已经着手尝试使用 PouchDB/CouchDB。我目前只在 Ionic 中构建移动版本。
任何建议将不胜感激,即使它是 github 要查看的项目、您已保存的教程等。
我主要使用 CouchDB,但我也开始使用 PouchDB/CouchDB 开发 Ionic 应用程序。首先,您需要知道当您有很多嵌套文档时 NoSQL 很好,但有时您无法选择 "relations".
首先,我对您的数据模型做了一些修改:
{
"name": "Europe 2016",
"type": "trip",
"tripPlans": [{
"name": "This is the first plan",
"days": {
"day1": [{
"registeredActivityId": null,
"plan": "do something",
"time": 1000
}, {
"registeredActivityId": "activty_goToTheMoon",
"plan": "Go to the moon and the previous activity",
"time": 1000
}],
"time": "0800",
"date": "09/01/2016",
"hotel": "Hotel name",
"weather": "Sunny"
}
}]
}
现在,您的选择不多了:
您可以像这样在嵌套活动上构建视图
function(doc) {
if (doc.type == "trip" && doc.tripPlans && doc.tripPlans.join)
for (var i = 0; i < doc.tripPlans.length; i++) {
var plan = doc.tripPlans[i];
if (plan.days)
for (var n in plan.days)
if (plan.days.hasOwnProperty(n)) {
var day = plan.days[n];
//We emit the activity id for a better tracking.
//If it's not available, we emit the description(not recommanded)
emit(day.registeredActivityId ? day.registeredActivityId : day.plan);
}
}
}
您可以在文档之间建立关系
如果经常计算视图,使用嵌套方法可以加快查询速度。否则,"relational approach" 使 link "predefined activities" 更容易。如果您需要更多信息,可以私下联系我。
我正在使用 Typescript 在 Angular 2/Ionic 2 中开发旅行应用程序。我需要弄清楚如何为我的服务/对象建模。这个应用程序将有用户。
每个用户都可以创建一个整体行程。您可以将其命名为 "Europe 2016." 然后您可以添加多天。他们可能要旅行 14 天。他们每天都可以计划当天要做什么,包括 activity 几点钟、activity 在哪里等等……他们还可以查看天气、添加酒店信息等每一天。
大概看起来像(对不起,这很难看)
Trip: {
"name": "Europe 2016",
"tripPlans": [
{"day1": [{plan1: do something, time: 01000}, {plan2: do something else, time: 01000}}], "time": "0800", "date":"09/01"2016, hotel, weather},
{"day2": [{plan1: do something, plan2: do something}], "time": "0800", "date":"09/01"2016, hotel info, weather info}
]
}
还需要知道旅行的开始日期和结束日期。
我也可能想返回并查询用户组认为流行的内容,例如"most common activity in Gotham"
这是我花了 100 个小时学习编码后的第一个主要应用程序,它是我的个人项目,让我对学习感到兴奋。它解决了我的个人问题。我已经到了很难找到好的 examples/resources 来帮助我解决这个问题的地步。
我在框架选择上花费了很多时间,所以我想坚持下去。到目前为止,我已经着手尝试使用 PouchDB/CouchDB。我目前只在 Ionic 中构建移动版本。
任何建议将不胜感激,即使它是 github 要查看的项目、您已保存的教程等。
我主要使用 CouchDB,但我也开始使用 PouchDB/CouchDB 开发 Ionic 应用程序。首先,您需要知道当您有很多嵌套文档时 NoSQL 很好,但有时您无法选择 "relations".
首先,我对您的数据模型做了一些修改:
{
"name": "Europe 2016",
"type": "trip",
"tripPlans": [{
"name": "This is the first plan",
"days": {
"day1": [{
"registeredActivityId": null,
"plan": "do something",
"time": 1000
}, {
"registeredActivityId": "activty_goToTheMoon",
"plan": "Go to the moon and the previous activity",
"time": 1000
}],
"time": "0800",
"date": "09/01/2016",
"hotel": "Hotel name",
"weather": "Sunny"
}
}]
}
现在,您的选择不多了:
您可以像这样在嵌套活动上构建视图
function(doc) { if (doc.type == "trip" && doc.tripPlans && doc.tripPlans.join) for (var i = 0; i < doc.tripPlans.length; i++) { var plan = doc.tripPlans[i]; if (plan.days) for (var n in plan.days) if (plan.days.hasOwnProperty(n)) { var day = plan.days[n]; //We emit the activity id for a better tracking. //If it's not available, we emit the description(not recommanded) emit(day.registeredActivityId ? day.registeredActivityId : day.plan); } }
}
您可以在文档之间建立关系
如果经常计算视图,使用嵌套方法可以加快查询速度。否则,"relational approach" 使 link "predefined activities" 更容易。如果您需要更多信息,可以私下联系我。