0
我正试图编写一个基于Web的应用程序进行时间跟踪。我仍在研究我想用来构建应用程序的工具集,但我希望它是NoSQL数据库驱动的(我的情况是MongoDB)。我没有使用NoSQL数据库的经验,所以我的问题。假设以下情况:时间跟踪器应用程序的NoSQL困境
- 我想创建一个项目。一个项目可以包括像一些名元数据的 网址等
- 我想创建一个用户(一个或多个),我希望能够给客户 分配给项目(一个或多个)。
- 每个项目可以有不同的步骤完成 ,直到完成。 Step属于一个项目。一步可以包含更多事件,因为它可能需要更多天才能完成一个步骤。
- 基于来自步骤的信息,我希望能够 计算我在项目上花费的总时间,并计算我花在每个步骤上的总时间(例如,用于发票的时间) 。
研究一点关于MongoDB的我的第一种方法看起来或多或少像后:
客户收集
{
"_id": 4e91bcb40b7aab256c000000,
"name": "Example",
"address": "Some street"
}
项目集合
{
"name": "My new Project",
"customers_id": 4e91bcb40b7aab256c000000,
"steps": [
{
"name": "Design",
"desctiption": "Frontend design",
"time_tracker": [
{
"description": "designed home page"
"start": 2012-05-28 10:10:10
"end": 2012-05-28 15:15:15
},
{
"description": "designed home page buttons"
"start": 2012-05-29 10:10:10
"end": 2012-05-29 15:15:15
}
]
}
]
}
这是一个好的数据库吗?设计?我应该使步骤正常化吗?我可以期待一路上遇到的任何问题(例如计算大型项目的总计等性能问题)?在这种情况下,我应该坚持使用RDBMS吗?
来自您的经验的任何提示?
感谢您的回答。我想我没有正确地制定我的问题。我想知道,如果我的设计适合我描述的场景。我只想避免稍后在开发过程中可能对我的应用程序产生影响的缺陷。 –