1

私はPHPでフォーラムを作成することを考えていたので、人々がデータベースで作成するテーブルの標準が何であるかを確認するために少し調査しました。私が調べたほとんどのWebサイトでは、スレッド用に1つのテーブルを用意し、スレッドの投稿用に2つ目のテーブルを用意することを常に選択しています。

スレッド用のテーブルを持つことは私には完全に合理的ですが、すべてのスレッドのすべての投稿を保持するための1つのテーブルは少し多すぎるように思えます。1つのテーブルに数十万の投稿を貼り付ける代わりに、そのスレッドの投稿を保持するスレッドごとにテーブルを作成する方がよいでしょうか。

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

投稿を1つのテーブルに保存するのが最善の解決策です。
MySQLは、テーブルに数百万の行を簡単に保持できます。

複数のテーブルを作成すると、いくつかの問題が発生する可能性があります。たとえば、異なるスレッドからの投稿でJOINを使用することはできません。

于 2012-04-05T14:27:29.763 に答える