Mysql 我可以为我的社交网站中的每个用户创建每个表吗?
我正在创建一个具有类似Facebook功能的社交网站。 我想从数据库的模式设计开始。 我的想法是为每个注册到我们网站的用户创建每个表。。我做得对吗 如果一百万用户注册到我的网站,将创建一百万个表。如何继续优化这一点?请给我一些技巧来克服这个问题,一些参考资料或书籍来学习这些概念将非常有用Mysql 我可以为我的社交网站中的每个用户创建每个表吗?,mysql,database,database-design,database-schema,Mysql,Database,Database Design,Database Schema,我正在创建一个具有类似Facebook功能的社交网站。 我想从数据库的模式设计开始。 我的想法是为每个注册到我们网站的用户创建每个表。。我做得对吗 如果一百万用户注册到我的网站,将创建一百万个表。如何继续优化这一点?请给我一些技巧来克服这个问题,一些参考资料或书籍来学习这些概念将非常有用 提前谢谢。那太过分了。您可能应该仔细阅读数据库设计(从规范化开始,但不要过度)。然后写下您想为每个用户保存的内容,并思考如何在不双重保存数据的情况下保存它 但是我很确定每个用户一张表不是这个选项。这不是你想要的
提前谢谢。那太过分了。您可能应该仔细阅读数据库设计(从规范化开始,但不要过度)。然后写下您想为每个用户保存的内容,并思考如何在不双重保存数据的情况下保存它
但是我很确定每个用户一张表不是这个选项。这不是你想要的方式 您要做的是创建一个表(可能称为
'users'
),该表包含每个注册用户的一行。为每个用户创建一个新表是完全没有意义的,并且会导致性能下降
也许是这样的:
TABLE users
- username AS VARCHAR(255)
- password AS VARCHAR(255) (use a hashed password, of course)
- ...
表用户
-用户名为VARCHAR(255)
-密码为VARCHAR(255)(当然,使用散列密码)
- ...
然后,当用户注册时,只需将他们提供的信息作为新行插入
users
表中。您一定混淆了单词、、
- 数据库包含特定项目的所有数据。每个项目始终有一个数据库(或几乎总是)
- 表包含特定实体的所有数据,我所说的实体是指可以想象为真实或单独存在的对象类型。一个人是一个实体,一本书是一个实体,一部电话是一个实体,一部电影是一个实体,等等。每一个都是数据库中独立的表
- 字段(或列)是表示表实体的特定特征(功能)的数据类型。例如,用户表可以包含以下字段:
,名称
,姓氏
,等等。这些都是用户拥有的功能年龄
- 记录(或行)是一个表的实际项。它是表格实体的单个“部分”。例如,在用户表中,一条记录是一个单独的用户,即
{NAME:“John”,姓氏:“Smith”,年龄:“32”}
在您的示例中,我可以肯定地告诉您,您只需要一个数据库。您希望为许多用户存储信息,因此需要一个名为
USER
的表。您需要向用户存储功能,如:姓名、姓氏、年龄、地址等,然后需要在该表中创建相应的字段:姓名
,姓氏
,年龄
,地址
,等等。然后您需要将数据作为记录插入数据库中。您要存储的每个用户将有一条记录。您走错了路,大错特错!简单地说:不管需要存储在数据库中的数据项有多少,表的数量都应该是相同的。是的,好吧,也许用词不当。这有点“错误,因为这太过分了”,但话说回来,也许你是对的,我应该选择其他词。但是,如果用户每天发布状态更新,那么我是否要更新我在表Users中输入的行中的dat?@Noddy:Status updates将是一个单独的表,其中包含一个字段“user\u id”
,该字段链接到Users
表中的该用户。至于更新行,只需使用SQLUPDATE
命令。@GeorgeEdison,只是关于状态更新的后续操作。所有状态更新,无论发布了哪个用户id,都应属于单个表,该表将由用户id字段通过外键链接?