从您的意见中可以看出,在实施数据库时,数据库模式的最佳解决方案是什facebook连接?
当我做一些研究时,我发现了一个建议,即将登录信息(fb_id,...)与帐户信息(例如,姓氏,姓氏......)分开: http://facebook-developer.net/2008/08/05/optimize-your-database-tables-for-facebook-connect/
本文提出的解决方案是三个表
创建表accounts
(
id
int(11)AUTO_INCREMENT NOT NULL,
name
文字,
email
文字,
PRIMARY KEY id
(id
)
);
创建表users
(
username
varchar(255)NOT NULL,
password
文字,
account_id
int(11)NOT NULL,
PRIMARY KEY username
(username
)
);
创建表facebook_users
(
fb_uid
bigint(11)默认为NULL,
email_hash
varchar(64)默认为NULL,
account_id
int(11)NOT NULL,
PRIMARY KEY fb_uid
(fb_uid
)
);
我没有看到一个明确的论据,为什么人们不能将所有数据存储在一个表中。
表用户( 用户身份, 用户名, 电子邮件, fb_id, email_hash, ... )
一个人通常只有一个facebook帐户,所以我没有看到任何冗余问题。 有什么建议吗?
答案 0 :(得分:1)
为了有效,使用单个表来保存所有数据是正确的。您只需在添加其他登录服务时添加新列。
但是,如果您想知道用户是否拥有Facebook帐户,那么性能会比分离的表更差。登录的性能也更差,因为数据库需要获取“email_hash”的整个记录。
另一方面,用户数据列表在设计单个表时具有更好的性能,因为您不必为此类报告连接表。