Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主键、唯一Id和记录(MySQL、PHP、信息系统)_Php_Mysql_Database_Primary Key_Unique Id - Fatal编程技术网

主键、唯一Id和记录(MySQL、PHP、信息系统)

主键、唯一Id和记录(MySQL、PHP、信息系统),php,mysql,database,primary-key,unique-id,Php,Mysql,Database,Primary Key,Unique Id,我正在创建一个对公众开放的社交网站,预计将拥有大量用户。每个用户的信息将存储在MySQL数据库中,页面将用PHP编写 我的问题是:Facebook、Yahoo、Stack Overflow等大型网站使用什么作为其主键和唯一键来跟踪大量数据 例如,一个表,例如: PK、唯一Id、用户Id、F_名称、L_名称、创建日期、删除等 我如何才能给此表中的每个用户提供他们自己的唯一id,这将是合理的?唯一id应该采用什么格式才有益?我应该如何管理主键?让pk从1开始,每次递增?一个32位整数应该可以做到这一

我正在创建一个对公众开放的社交网站,预计将拥有大量用户。每个用户的信息将存储在MySQL数据库中,页面将用PHP编写

我的问题是:Facebook、Yahoo、Stack Overflow等大型网站使用什么作为其主键和唯一键来跟踪大量数据

例如,一个表,例如:

PK、唯一Id、用户Id、F_名称、L_名称、创建日期、删除等


我如何才能给此表中的每个用户提供他们自己的唯一id,这将是合理的?唯一id应该采用什么格式才有益?我应该如何管理主键?让pk从1开始,每次递增?

一个32位整数应该可以做到这一点:足以代表40多亿用户;除非你有其他限制,是的-从1开始,然后开始计算<代码>自动增量可以在这里帮助您。或者,你可以把他们的电子邮件地址之类的东西作为你的PK。。。考虑到亚马逊的规模,它可能无法很好地扩展。Facebook、LinkedIn和其他公司也有类似的方法。Instagram在应用程序中生成他们的唯一Id,而不是使用auto increment is
Unique\u Id
required?如果它只是一个自动生成的字段,那么你的PK就足够了。如果它是一个用户生成的字段(例如,Facebook让您定义一个配置文件名,这样您就可以访问Facebook.com/username),那么它是有意义的。您的支持表都应该使用PK作为链接字段。好吧,起初我认为自动递增的PK字段会很好。但是,我后来意识到。。。如果我只使用一个主键来识别记录,如果我有一百万个用户,那么我的主键将是1000000。从技术上讲,这并不坏。但如果我想要一种更正式的方式来识别用户帐户呢。假设用户是第一个获得帐户id的用户,那么id将是“1”或“000001”,但如果我想给该用户一个“帐户号”作为唯一id,该怎么办?这难道不比一个简单的主键更好吗?