我正在尝试编写一个基于Web的应用程序来进行时间跟踪。我还在研究我想用来构建应用程序的工具集,但我希望它是NoSQL数据库驱动的(在我的情况下是MongoDB)。我根本没有使用NoSQL数据库的经验,因此我的问题。让我们假设以下情况:
在研究了一下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吗?
您的经验提示?
答案 0 :(得分:0)
这取决于您的用例,应用程序和数据。
为避免重复,此前已在Stackoverflow上进行了相当广泛的讨论 - When to use MongoDB or other document oriented database systems?和此处When to use MongoDB。
关于你上面提到过的设计,这对我来说很好。