【发布时间】:2013-10-13 13:05:22
【问题描述】:
以发布任务为主要目的,显示为“待办事项”或“已完成”,如何更好地构建以下对象的 NoSQL 数据库:
- 创建日期时间不为空
- 任务 ID 不为空
- 任务 ID 作为 Str Not Null
- 任务标题非空
- 任务说明
- 到期时间和/或日期
- 用户不为空
- ID 不为空
- ID 作为 Str Not Null
- 名称不为空
- 用户名非空
- 位置
- 联系人计数
- 创建日期不为空
- UTC 偏移量非空
- 时区 非空
- 地理启用非空
- 已验证
- 任务计数非空
- 语言非空
- 地理位置
- 坐标
- 地点
- 与谁共享
- ?
- 任务状态
- 标记完成
- 自动移动到完成(因为 datetime-due 已过)
- 标记(真/假)
- 已编辑
- 编辑计数
- 编辑日期时间
- 已删除
用户可以发布无限数量的任务,并且任务可以在用户之间共享。如何最好地捕捉这种关系?
任务可以手动“标记为完成”,或“自动标记”和“自动移动完成”,因为到期日期已过。
编辑和删除也将被记录下来。
首先,以下架构的优点和/或缺点是什么(主要关注可扩展性):
{
"created_at":"Day Mon ## 00:00:00 +0000 20##",
"id":#####,
"id_str":"#####",
"title":"This is a title",
"description":"The description goes here..",
"date_due":"Day Mon ## 00:00:00 +0000 20##",
"user":{
"id":####,
"id_str":"####",
"name":"Full Name",
"user_name":"Username",
"location":"",
"contacts_count":101,
"created_at":"Day Mon ## 00:00:00 +0000 20##",
"utc_offset":####,
"time_zone":"Country",
"geo_enabled":true,
"verified":false,
"task_count":101,
"lang":"en",
},
"geo":?,
"coordinates":?,
"place":?,
"shared_with":?,
"moved_done":false,
"marked_done":false,
"edited":false,
"deleted":false,
}
【问题讨论】:
标签: mongodb database-design schema database nosql