Facebook用户名如何运作?

时间:2011-11-19 18:00:41

标签: php mysql facebook redirect url-rewriting

首先,这不仅仅是重定向。我试图完全理解facebook用户名结构。所以不要告诉我使用htaccess,我已经知道了。

facebook.com/profile.php?id = username
facebook.com/profile.php?id = id

facebook.com/username
facebook.com/id

这些网址做同样的事情并将您重定向到

facebook.com/username

如果用户尝试使用用户ID,它会从db检查用户ID并获取用户名并将用户重定向到facebook.com/username。

到目前为止,非常好。

所有用户制作的活动都使用用户ID存储到db,但在打印数据时,链接将转换为用户名。因此,他们应该在每次查询时获取用户名数据。在处理数据时,用户名变为用户ID。最后,如果用户没有设置用户名,则用户ID仍然有效。

这是我直到现在所理解的。这是我的问题。

  • 我应该如何在db?
  • 中存储用户名
  • 我认为这种结构会给我的查询带来很多性能问题。会吗?
  • 这需要对工作系统进行大量更改。你认为有一个简单的方法吗? (有些人喜欢检测并将id重定向到php页面,将其转换为用户名)
  • 处理没有用户名的用户对我来说似乎是个大问题。如何克服它? 的更新
  • 如何确定即将到来的网址是否包含用户ID或用户名?

谢谢!

1 个答案:

答案 0 :(得分:3)

  1. 将其存储为用户表中的可为空的列
  2. 不应该。你只抓了一个额外的列,如果你真的很担心,抓住它一次,然后将它存储在一个变量中
  3. 在设计良好的工作系统中,逻辑应该都在“用户”类中,所以它应该不难。如果它需要进行大量更改,那么您的代码需要重构和清理才能将逻辑放在一个地方
  4. 嗯,使用用户类中的逻辑all,您只有一个方法返回显示名称,如果用户有用户名,则返回用户名版本,否则,使用id版本