Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
Mysql 我可以为我的社交网站中的每个用户创建每个表吗?_Mysql_Database_Database Design_Database Schema - Fatal编程技术网

Mysql 我可以为我的社交网站中的每个用户创建每个表吗?

Mysql 我可以为我的社交网站中的每个用户创建每个表吗?,mysql,database,database-design,database-schema,Mysql,Database,Database Design,Database Schema,我正在创建一个具有类似Facebook功能的社交网站。 我想从数据库的模式设计开始。 我的想法是为每个注册到我们网站的用户创建每个表。。我做得对吗 如果一百万用户注册到我的网站,将创建一百万个表。如何继续优化这一点?请给我一些技巧来克服这个问题,一些参考资料或书籍来学习这些概念将非常有用 提前谢谢。那太过分了。您可能应该仔细阅读数据库设计(从规范化开始,但不要过度)。然后写下您想为每个用户保存的内容,并思考如何在不双重保存数据的情况下保存它 但是我很确定每个用户一张表不是这个选项。这不是你想要的

我正在创建一个具有类似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
表中的该用户。至于更新行,只需使用SQL
UPDATE
命令。@GeorgeEdison,只是关于状态更新的后续操作。所有状态更新,无论发布了哪个用户id,都应属于单个表,该表将由用户id字段通过外键链接?