我使用bigint来存储facebook id,因为这就是它的原因。
但内部为表的主键和外键,我使用smallint,因为它更小。但也因为如果bigint应该成为一个字符串(通过用户名而不是id来查找用户),我可以轻松地更改它。
,所以我有一个表,看起来像这样:
profile
- profile_key smallint primary key
- profile_name varchar
- fb_profile_id bigint
和一个看起来像这样
something_else
- profile_key smallint primary key
- something_else_key smallint primary key
- something_else_name varchar
和我的燎页的查询可能是这样的:
select profile_key, profile_name
from profile
where fb_profile_id = ?
现在我把profile_key和在下一个查询中使用它
select something_else_key, something_else_name
from something_else
where profile_key = ?
无论如何,配置文件表几乎总是被查询,因此我不认为它是一个额外的步骤。
当然,对于一些额外的性能来说,缓存第一个查询也很容易。
Facebook的使用64位用户ID。 – Gustav 2013-03-07 11:42:43
@Gustav - 你有这个要求的来源吗? – FuzzyAmi 2015-03-11 15:59:27
v2.2似乎将user_id定义为字符串。两年前,事实并非如此。 – Gustav 2015-03-12 16:38:29