如何为社交网站安排SQL表?

时间:2015-04-08 10:29:18

标签: sql database relational-database social-networking

我想建立一个网站,用户可以发布一些东西,他们的朋友可以看到帖子。我该如何安排桌子?我有一个想法,但这是一个好方法吗?:

USERS TABLE
-------------
user id| user name| birth day|...

USERS_POST TABLE
-------------
user id|post 1|date|post 2|date|post 3|date......post 9999999|date

USERS_POST TABLE中有很多列。有不同的方式吗?

2 个答案:

答案 0 :(得分:3)

您不需要为用户的每个帖子创建一个列。 您将拥有一个帖子表和一个用户表。

邮政表将包含例如 ID,用户ID,日期和帖子

对于每个帖子,您将在帖子表中创建一个新条目。

您现在可以将用户表与post表一起加入以获取所有条目。 enter image description here

编辑: 你可以当然,不包括post表中的userid,还要创建一个表来显示post和usertable之间的关系:

enter image description here

答案 1 :(得分:0)

将不同的帖子作为列,您必须始终修改表格结构。

我想创建3个表:

USERS TABLE
-------------
user id| user name| birth day|...

USERS_POSTS TABLE
-------------
user id| post id

POSTS TABLE
-------------
post id| date| post title| post text| ...

然后,要获取用户拥有的帖子:     SELECT postid FROM USERS_POSTS WHERE userid =?

获取文字/标题/等。任何帖子:     SELECT * FROM POSTS WHERE postid =?

您还可以在USERS_POSTS表中使用帖子标题和文字,但从长远来看,它不会具有灵活性和可扩展性。

相关问题