如何为社交网站安排一个SQL table?

how to arrange a SQL table for social website?

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

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 中有很多列。有什么不同的方法吗?

您不需要为每个 post 用户创建一个列。 您将有一个 post table 和一个用户 table.

post table 将包含例如 ID、用户 ID、日期和 post

对于每个 post,您将在 post table 中创建一个新条目。

您现在可以使用 post table 加入用户 table 以获取所有条目。

编辑: 当然,您可以不在 post table 中包含用户 ID,还可以创建一个 table 来显示 post 和用户 table 之间的关系:

将不同的 post 作为列,您将不得不一直修改 table 结构。

我要做的是创建 3 tables:

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

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

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

然后,要获得用户拥有的 posts: SELECT postid FROM USERS_POSTS WHERE userid=?

并获得text/title/etc。任何post: SELECT * 来自 postid=?

的帖子

您也可以在 USERS_POSTS table 中使用 post 标题和文本,但从长远来看,它不会那么灵活和可扩展。