面向用户及其数据的MongoDB数据库设计
MongoDB和数据库的新功能。我正在尝试用Express和MongoDB制作一个基本的属性应用程序以供练习 我正在寻求一些帮助,寻找解决这个问题的最佳方法 基本上,我的应用程序会有房东和房客。每个房东都会有一堆信息存储的房产。租赁条款、承租人姓名、维护请求、图像等 租户将能够注册,并与他们居住的房产有关联。他们可以提交维护表格等 这是一个好方法吗?所有的东西都应该保存在同一个集合中吗?谢谢面向用户及其数据的MongoDB数据库设计,mongodb,Mongodb,MongoDB和数据库的新功能。我正在尝试用Express和MongoDB制作一个基本的属性应用程序以供练习 我正在寻求一些帮助,寻找解决这个问题的最佳方法 基本上,我的应用程序会有房东和房客。每个房东都会有一堆信息存储的房产。租赁条款、承租人姓名、维护请求、图像等 租户将能够注册,并与他们居住的房产有关联。他们可以提交维护表格等 这是一个好方法吗?所有的东西都应该保存在同一个集合中吗?谢谢 { "_id": "507f1f77bcf86cd799439011", "user": "Co
{
"_id": "507f1f77bcf86cd799439011",
"user": "Corey",
"password": "hashed#PASSWORD",
"email": "corey@email.com",
"role": "landlord",
"properties": [
{
"addressId": "1",
"address": "101 Main Street",
"tenant": "John Smith",
"leaseDate": "04/21/2016",
"notes": "These are my notes about this property.",
"images": [ "http://www.imagelink.com/image1", "http://www.imagelink.com/image2", "http://www.imagelink.com/image3"]
},
{
"addressId": "2",
"address": "105 Maple Street",
"tenant": "John Jones",
"leaseDate": "01/01/2018",
"notes": "These are my notes about 105 Maple Ave property.",
"images": ["http://www.imagelink.com/image1", "http://www.imagelink.com/image2", "http://www.imagelink.com/image3"],
"forms": [
{
"formType": "lease",
"leaseTerm": "12 months",
"leaseName": "John Jones",
"leaseDate": "01/01/2018"
},
{
"formtype": "maintenance",
"maintenanceNotes": "Need furnace looked at. Doesn't heat properly.",
"maintenanceName": "John Jones",
"maintenanceDate": "01/04/2018",
"status": "resolved"
},
]
},
{
"addressId": "3",
"address": "110 Chestnut Street",
"tenant": "John Brown",
"leaseDate": "07/28/2014",
"notes": "These are some notes about 110 Chestnut Ave property.",
"images": [ "http://www.imagelink.com/image1", "http://www.imagelink.com/image2", "http://www.imagelink.com/image3"]
}
]
}
{
"_id": "507f1f77bcf86cd799439012",
"user": "John",
"password": "hashed#PASSWORD",
"email": "john@email.com",
"role": "tenant",
"address": "2",
"images": [ "http://www.imagelink.com/image1", "http://www.imagelink.com/image2" ]
}
对于这种关系,我建议三个集合房东、物业和租户,每个租户都有一个房东ID和物业ID 这个landordid仅仅是房东的ObjectId,对于属性Id也是如此 如果您计划进行任何类型的汇总报告,或者如果您有房东到物业或房东到租户的多个一对一映射,这将使您的生活更轻松。例如,给定属性的多个属性管理器 这只会使一切变得更简单/更直观,因为您可以简单地在租户的阵列中添加维护请求、租赁条款等内容,并引用任何需要的内容
这提供了最大的灵活性,可以轻松聚合任何类型的报告/查询。非常有帮助。谢谢。MongoDB是一个基于JSON的nosql存储。我们大多数人都有SQL背景,并且已经习惯于使用关系数据库。如果将关系ism的集合拆分为不同的集合没有问题,那么您必须检查它是否不会弄乱您的数据,因为MonogoDB目前不支持ACID。聚合框架查询和应用程序级数据验证无疑会有所帮助。您可以选择如何分割/构建数据、集合、索引和应用程序级验证。如果您打算用嵌套结构保存json数据,这是绝对好的。