我正在构建一个 facebook 应用程序,该应用程序通过开放图访问用户的 friend ,我需要将他们包含在数据库中。
现在这个数据库包含用户 id
、name
和我的应用所需的一些其他信息。为了防止数据库中出现多个条目,我使用 phpMyAdmin 将用户 ID 指定为 unique
。现在这对许多值都适用,但同时它在很多时候都失败了。
假设根据 mysql 唯一的值是:
51547XXXX
52160XXXX
52222XXXX
52297XXXX
52448XXXX
但是如果id变成了
5154716XX
5154716XX
or
5216069673X
521606903XX
然后它将其视为相似并因此丢弃其中一个。
结果,假设我将我的 friend 列表输入到表中,那么它应该有 830 条记录,如果我不使用唯一约束,那就是我得到的值。
但是一旦 unique
被激活,我就得到 375 这意味着 455 记录被丢弃,认为它们与之前的数据相同..
我能想到的解决办法是,先用php比对数据,然后登录到数据库,但是查询那么多,时间会很长很长。谷歌无法回答这个问题,不知道为什么.. :(
最佳答案
Facebook 用户 ID are too big以适应 MySQL 的 INT 类型(32 位)。您需要使用 64 位的 BIGINT 类型,从而可以处理 facebook 使用的 ID 范围。
关于php - MySQL 无法区分大的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8628918/