场景:一个叫做“accessPoint”的实体有一个叫做“network”的重要属性。应用程序将显示此网络属性的某些部分,因此我决定将其存储在 accessPoint 文档中。
我还决定将所有网络文档(带有附加属性)存储在一个单独的集合中(出于性能原因:它将用于前端的自动完成输入)
accessPoint: {
id: ObjectId,
name: String,
uptime: Number,
network: {
subnet: String,
netmask: Number
}
}
network: {
_id: ObjectId
subnet: String,
netmask: Number,
size: Number,
validatedAt: Date,
attrX: String,
attrY: String,
attrZ: String
}
我有 3 个主要问题: 1 - 将网络存储在单独的集合中是一种好习惯吗?(注意上面的要求)
2 - 在这两个文档(如 SQL DBMS)之间建立关系是否存在任何合规/约定问题?
3 - 而且,我想知道......我可以将 _id 存储为 String 而不是 ObjectId 吗?我已经阅读了一些建议,但我对此没有决定性的意见。例如:(... network: { _id: "192.168.1.0/24" }
保证唯一性:D)
谢谢!