我应该使用“id”还是“唯一用户名”?

时间:2009-03-26 03:17:15

标签: php mysql database flash surrogate-key

我正在使用PHP,AS3和mysql。

我有一个网站。一个flash(as3)网站。 flash网站通过php将成员信息存储在mysql数据库中。在“members”表中,我将“id”作为主键,将“username”作为唯一字段。

现在我的情况是: 当flash想要显示成员的个人资料时。我的问题:

  1. Flash应该将成员“ID”或“用户名”传递给php来处理mysql查询吗?

  2. 是否有任何不同的传递“id”或“用户名”?

  3. 哪一个更安全?

  4. 你推荐哪一个?

  5. 我想在安全性和性能方面优化我的网站。

4 个答案:

答案 0 :(得分:7)

主键始终是识别数据库行的最安全方法。例如,您可能稍后改变主意并允许重复的用户名。

根据您的ActionScript与PHP通信的方式,如果您在请求中发送整数ID而不是用户名,则可能还需要发送更少的字节。

答案 1 :(得分:7)

1)

2)ID可能更短,查询速度更快。该ID提供了有关您的系统的更多信息;如果您知道某个站点根本使用了序列ID,并且您知道它们中的哪一个,那就非常了解所有这些,而知道一个用户名并不会告诉您任何其他用户的用户名。另一方面,用户名更能揭示用户的心理,并可能构成密码提示。

3)如第2项所述,两者都有极度边际的垮台。

4)我会使用ID。

答案 2 :(得分:2)

传递身份证号码的参数:

  • 人们永远不会改变他们的身份。人们确实改变了名字。对于带有一次性帐户的休闲游戏网站,这可能不是问题,但对于长期注册用户来说可能是。我不得不处理一个心烦意乱的女人的要求,即她的前夫的姓氏被清除了她的用户名。必须迅速建立这样做的过程!

  • 更短的

  • 更容易索引和分区。

传递用户名的参数:

  • 猜测合法的现有帐户会有点困难(但并非不可能) - 例如仔细阅读随机的人的记录,如果这是你的事。

答案 3 :(得分:1)

可能你应该非常熟悉“PHP会话”,也许使用已经有这个的框架,因为它不是一件容易的事情,你不想搞砸它。会话管理软件将为您处理所有这些,包括登录屏幕,“我忘记了密码”等。

然后,您可以将注意力集中在您的网站的主要用途上。

听起来很有趣(actionscript + php + mysql) - 祝你好运!