ホームページ >バックエンド開発 >PHPチュートリアル >マルチレイアウトフォーラムでのデータベーステーブル構造の最適化設計に関する議論_PHPチュートリアル

マルチレイアウトフォーラムでのデータベーステーブル構造の最適化設計に関する議論_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:25:051109ブラウズ

最近、新しいフォーラムについて考えています。 「マルチレイアウトフォーラム向けのデータベーステーブル構造の最適化設計」という問題について議論したいと思います。

問題提起:
包括的なフォーラムとして、必然的にフォーラムの分類の問題に遭遇します。一般的な単一レベル、複数ページの構造は単純すぎるため、分類の問題を処理できず、より複雑な分類を実現できません。 phorum のようなマルチレベルおよびマルチページ構造は、任意に複雑な分類を実現できます (ディレクトリ分類構造の無限レベルを実現できます) が、問題は、ナビゲーションが直観的ではなく、不便であることです。したがって、現在インターネットで一般的な 2 層のマルチページ構造は、基本的に包括的なフォーラム分類の要件を満たしており、www.chinaasp などの直感的で便利なフォーラム ナビゲーション インターフェイスをより簡単に実装できると思います。 com の現在のフォーラム。この構造は 2 つのレベルのディレクトリがあり、上のレベルは一般的なカテゴリ、下位のレベルは分類、つまり特定のフォーラムのレイアウトです。データベース テーブルを使用してこの構造をより効率的に実装するにはどうすればよいでしょうか?

オプション 1:
将来的にフォーラムの数が増えても、すべての投稿はテーブルに保存され、投稿のすべての情報とその投稿が属するサブカテゴリの ID 番号が記録されるとします。このテーブルの名前が T_articles であることを示し、テーブル T_columns1 を使用して大カテゴリ情報 (大カテゴリ名と大カテゴリの ID 番号) を記録し、テーブル T_columns2 を使用してサブカテゴリ情報 (サブカテゴリ名、サブカテゴリ ID 番号、および大カテゴリ ID 番号) を記録します。

スキーム 2:
サブカテゴリごとに新しいテーブルを作成し、このカテゴリに属する​​すべての投稿をこのテーブルに保存します。このテーブルには、投稿自体の情報 (トピック、テキストなど) のみが記録されます。このようなテーブルでは、T_articles1、T_articles2 などの表現が使用されます。テーブル T_columns1 を使用して大カテゴリ情報 (大カテゴリ名と大カテゴリの ID 番号) を記録し、テーブル T_columns2 を使用してサブカテゴリ情報 (サブカテゴリ名、サブカテゴリ ID 番号、サブカテゴリが属する大カテゴリ ID 番号) を記録します。

要件:
1. 将来的には大規模なカテゴリと小規模なカテゴリの両方を拡張できることが必要です。

比較:
どちらか。オプション 1 とオプション 2 のどちらが良いですか?

話し合ってみませんか?


「江南フォーラム」の友人からの返信を転載
Programming Basecamp at 2001-1-18 23:51:59 に投稿されたキャッシュ
オプション 1 はレイアウトを拡張しやすいですが、欠点はレイアウトの数が増えることです。投稿が増えるとデータ量もどんどん大きくなります

クエリを実行するのに時間がかかりますし、データテーブルに問題があると面倒になります。
しかし利点は、プログラミングがはるかに簡単であることです。現在、多くのフォーラムがこのソリューションを使用しています。
オプション 2 はそれに比べて高速ですが、プログラミングにもう少し時間がかかる可能性があります。
いくつかのコンテンツを 2 番目のオプションに追加する必要があると思います。つまり、新しく作成したサブクラスのテーブル名を入れるためのフィールドを T_columns2 に追加します (2 番目のオプションはディスカッション エリアにテーブルを構築するため、これらのテーブルは
それは動的に追加されるため、テーブル名を格納するフィールドを追加する必要があります。このフィールドは、対応するディスカッションエリアを生成するためのパラメーターとして使用できます)。あるディスカッション エリアのテーブルに問題があっても、
他のディスカッション フォーラムには影響しないので、やはりオプション 2 の方が良いと思います。
上記は私の個人的な意見です!

著作権声明: この投稿の著作権は投稿者のキャッシュに属します。他のウェブサイトに再投稿または再投稿する場合は、出典を明示する必要があります。



http://www.bkjia.com/PHPjc/532076.html

www.bkjia.com

http://www.bkjia.com/PHPjc/532076.html技術記事最近、新しいフォーラムについて考えています。 「マルチレイアウトフォーラム向けのデータベーステーブル構造の最適化設計」という問題について議論したいと思います。 提起された質問: 包括的なものとして...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。