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