我正在创建一个功能类似于Facebook的社交网站。 我想从我的数据库的架构设计开始。 我想的是为每个注册到我们网站的用户创建每个表..我做得对吗?
如果有一百万用户注册到我的网站,将创建一百万个表。如何继续优化这个?请建议我克服这个问题的技巧,一些参考或书籍来了解这些概念将是有用的..
先谢谢。
答案 0 :(得分:7)
这是不你想要的方式。
您要做的是为每个注册用户提供一个表(可能称为'users'
),其中包含一行。为每个用户创建一个新表完全毫无意义,会导致可怕的性能。
也许是这样的:
TABLE users - username AS VARCHAR(255) - password AS VARCHAR(255) (use a hashed password, of course) - ...
然后,当用户注册时,只需将他们提供的信息作为新行插入users
表。
答案 1 :(得分:2)
那将是巨大的矫枉过正。您应该阅读数据库设计(从规范化开始,但不要过度)。然后记下要为每个用户保存的内容,并考虑如何保存它而不保存数据双倍。
但我非常确定每个用户的表不是一个选项。
答案 2 :(得分:0)
您必须混淆单词database,table,field (or column),record (or row)的含义。
NAME
,SURNAME
,AGE
等。这些都是用户拥有的所有功能。{NAME:"John", SURNAME:"Smith", AGE:"32"}
。在您的示例中,我可以肯定地告诉您,您只需要一个数据库。您想要为许多用户存储信息,因此需要一个表,名为USER
。您将需要向用户存储功能,例如:姓名,姓氏,年龄,地址等,然后您需要在此表中创建相应字段:NAME
,{ {1}},SURNAME
,AGE
等。然后,您需要将数据作为记录插入数据库中。这将是您要存储的每个用户一条记录。