1

我一直在考虑用 PHP 创建一个论坛,所以我做了一些研究,看看人们在数据库中创建的表的标准是什么。在我查过的大多数网站上,他们总是选择为线程设置一个表格,为线程上的帖子设置第二个表格。

对我来说,拥有一张用于线程的表格似乎是完全合理的,但是一张表格来容纳所有线程上的所有帖子似乎有点太多了。为每个线程创建一个表格来保存该线程的帖子而不是在一个表格中粘贴几十万个帖子会更好吗?

4

3 回答 3

3

这些表应该代表数据库中数据的结构。如果您有 2 个对象,在这种情况下是您的线程和您的帖子,您应该将它们放在 2 个表中。

相信我,如果您按照自己的想法进行操作,那么为每个帖子找出正确的表格将是一场噩梦。SQL 会是什么样子?就像是

SELECT *
FROM PostTable17256

并且您必须在每个请求上动态构建此查询。

但是,通过使用 1 个表,您可以简单地获取 ThreadID 并将其作为变量传递给您的查询。

SELECT *
FROM Posts
WHERE ThreadID = $ThreadID

关系数据库被设计为具有包含大量行的表。顺便说一句,您可能会对 DBA 认为的“很多”感到惊讶。在大多数地方,一个有 1,000,000 行的表被认为是中小型的。

于 2012-04-05T14:26:00.900 回答
1

不不不。数据库喜欢巨大的表。将帖子拆分为多个表格会引起很多麻烦。

于 2012-04-05T14:26:13.640 回答
0

将帖子存储在一张表中是最好的解决方案。
MySQL 可以轻松地在一个表中保存数百万行。

创建多个表可能会导致一些问题。例如,您将无法将 JOIN 用于来自不同线程的帖子。

于 2012-04-05T14:27:29.763 回答