在mongo数据库中使用用户名作为“主要/唯一键”是否有益处?
问题描述:
User1 {
_id: "my_user1",
name: "john smith",
email: "[email protected],
friends: [
"my_user2",
"my_user3",
"my_user4",
]
}
这将是例子。我的网站布局是blah.com/user/。通过仅使用用户名作为数据库的唯一密钥,似乎事情会变得更加容易。这是否会造成减速或者这是错误的?在mongo数据库中使用用户名作为“主要/唯一键”是否有益处?
答
一般来说,你看人家使用固定的ID而不是用户名的一对夫妇的原因:
- 通常情况下,用户名可以改变(比如,从“鲍勃”到“罗伯特”改变我的用户名)
- ID,特别是数字ID通常可以更有效地存储和索引
答
在用户名不经常更改的前提下,使用用户名作为密钥有其好处。
当您查看用户的个人资料时,您当然希望看到他们的朋友列表。当您将朋友存储为可读名称时,您可以显示此列表而无需额外的数据库查询。但是,当您将它们存储为ID时,需要使用附加查询查找每个朋友的姓名,这可能需要一段时间。
我应该使用内置objectid吗? – carboncomputed 2013-02-10 18:10:08
Mongo让你自由地做* * *。也许我错了,但我不知道至少在早期之间很难在一种或另一种形式之间进行转换。这两种形式的关键都有其优势,但如果这一点阻止你开始开发模型,那么我会说掷硬币或者选择第一个选择,但是准备好应对后果。 – JayC 2013-02-10 18:32:09