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

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

Jul 13, 2016 pm 05:25 PM
そして 最適化 存在する データベース 構造 表面 話し合う フォーラム デザイン 近い

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

問題提起:
包括的なフォーラムとして、必然的にフォーラムの分類の問題に遭遇します。一般的な単一レベル、複数ページの構造は単純すぎるため、分類の問題を処理できず、より複雑な分類を実現できません。 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Honor Magic V3 が AI デフォーカス眼保護技術をデビュー: 近視の進行を効果的に軽減 Honor Magic V3 が AI デフォーカス眼保護技術をデビュー: 近視の進行を効果的に軽減 Jul 18, 2024 am 09:27 AM

7月12日のニュースによると、Honor Magic V3シリーズは本日正式にリリースされ、新しいHonor Vision Soothing Oasisアイプロテクションスクリーンを搭載しており、スクリーン自体は高スペックで高品質であると同時に、AIアクティブアイプロテクションの導入も先駆けとなっています。テクノロジー。近視を軽減する伝統的な方法は「近視メガネ」であると報告されています。近視メガネの度数は均等に分散され、視野の中心領域は網膜上に結像されますが、周辺領域は網膜の後ろに結像されます。網膜は像が遅れていると認識し、眼軸方向の成長を促進し、その度数が深くなります。現在、近視の進行を軽減する主な方法の 1 つは、「デフォーカス レンズ」です。中央領域は通常の度数で、周辺領域は光学設計の隔壁によって調整され、周辺領域の像が収まります。網膜の前。

Honor X60i携帯電話は1,399元から販売中:視覚的な四角形OLEDダイレクトスクリーン Honor X60i携帯電話は1,399元から販売中:視覚的な四角形OLEDダイレクトスクリーン Jul 29, 2024 pm 08:25 PM

7月29日のニュースによると、Honor X60i携帯電話は本日正式に発売され、価格は1,399元からとなっている。デザインの面では、Honor X60i 携帯電話は、中央に穴があり、四辺すべてにほぼ境界のない超狭い境界線を備えたストレート スクリーン デザインを採用しており、視野が大幅に広がります。 Honor X60i パラメータ ディスプレイ: 6.7 インチ高解像度ディスプレイ バッテリー: 5000mAh 大容量バッテリー プロセッサー: Dimensity 6080 プロセッサー (TSMC 6nm、2x2.4G A76+6x2G A55) システム: MagicOS8.0 システム その他の機能: 5G 信号強化、スマートカプセル、画面下指紋認証、デュアルMIC、ノイズリダクション、知識Q&A、撮影機能:背面デュアルカメラシステム:5000万画素メインカメラ、200万画素補助レンズ、フロントセルフィーレンズ:800万画素、価格:8GB

信号が最も強い Vivo の携帯電話! vivo X100s にはユニバーサル信号増幅システムが装備されています: 21 本のアンテナ、360° サラウンド設計 信号が最も強い Vivo の携帯電話! vivo X100s にはユニバーサル信号増幅システムが装備されています: 21 本のアンテナ、360° サラウンド設計 Jun 03, 2024 pm 08:41 PM

5 月 13 日のニュースによると、vivoX100s は今夜正式にリリースされました。優れた画像に加えて、新しい携帯電話は信号の面でも非常に優れています。 vivo の公式紹介によると、vivoX100s は最大 21 個のアンテナを備えた革新的なユニバーサル信号増幅システムを使用しています。この設計は、5G、4G、Wi-Fi、GPS、NFC などの多くの信号要件のバランスをとるために、ダイレクト スクリーンに基づいて再最適化されています。これにより、vivoX100s は vivo 史上最強の受信能力を備えた携帯電話となります。新しい電話機は、本体の周囲にアンテナを配置した独自の 360 度サラウンド設計も採用しています。この設計は信号強度を高めるだけでなく、日常のさまざまな保持姿勢を最適化し、不適切な保持方法によって引き起こされる問題を回避します。

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

C++ プログラムの最適化: 時間の複雑さを軽減する手法 C++ プログラムの最適化: 時間の複雑さを軽減する手法 Jun 01, 2024 am 11:19 AM

時間計算量は、入力のサイズに対するアルゴリズムの実行時間を測定します。 C++ プログラムの時間の複雑さを軽減するためのヒントには、適切なコンテナー (ベクター、リストなど) を選択して、データのストレージと管理を最適化することが含まれます。クイックソートなどの効率的なアルゴリズムを利用して計算時間を短縮します。複数の操作を排除して二重カウントを削減します。条件分岐を使用して、不必要な計算を回避します。二分探索などのより高速なアルゴリズムを使用して線形探索を最適化します。

新しいスタッキングプロセス! Xiaomi MIX Fold 4は初めて金沙江「三次元特殊形状」バッテリーを搭載 新しいスタッキングプロセス! Xiaomi MIX Fold 4は初めて金沙江「三次元特殊形状」バッテリーを搭載 Jul 20, 2024 am 03:20 AM

7月19日のニュースによると、初の主力折りたたみ新型携帯電話であるXiaomi MIX Fold 4が今夜正式にリリースされ、初めて「三次元特殊形状バッテリー」を搭載したとのこと。レポートによると、Xiaomi MIX Fold4はバッテリー技術で大きな進歩を遂げ、折りたたみ式スクリーン専用に革新的な「三次元特殊形状バッテリー」を設計しました。従来の屏風型端末は、スペース利用効率が低い従来の角形電池を使用することがほとんどでした。この問題を解決するために、Xiaomi は一般的な巻回バッテリーセルを使用せず、新しいラミネートプロセスを開発して新しい形式のバッテリーを作成し、スペース利用率を大幅に改善しました。バッテリー技術の革新 正極シートと負極シートを正確に交互に積み重ね、リチウムイオンの安全な埋め込みを確保するために、Xiaomi は新しい超音波溶接機とラミネート機を開発し、溶接と切断の精度を向上させました。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

See all articles