我来自关系数据库的奇妙世界,我现在想知道如何实现一对一的关系。
问题在于:
关系数据库:我有2个表Account
和User
,其中1:0/1关系=> account
记录必须与用户记录相关联,但“用户”可以是其自己的实体,而不是与account
相关联。
NoSQL数据库:根据我的理解,这个问题有3个主要解决方案。
User
字段创建account
集合。 user = {
_id: string,
username: string,
account: {
password: string
}
}
Account
字段创建user
集合,该字段仅包含与帐户关联的用户+创建仅包含没有帐户的用户的User
集合表。这里的问题是我们复制用户字段 account = {
_id: string,
username: string, // duplicated
password: string
}
user = {
_id: string,
username: string // duplicated
}
$lookup
个超过2个集Account
和User
与Account
包含userId
字段。 account = {
_id: string,
userId: string
}
user = {
_id: string,
username: string // duplicated
}
我个人更喜欢解决方案1,因为它感觉更适合NoSQL数据库。
然而,我并不相信,并且非常感谢任何其他解决方案或反馈。