ニュース システムをセットアップするにはどうすればよいですか? 完全なニュース システムには、閲覧用のニュース インターフェイスだけでなく、多くの機能とバックグラウンド管理を制御するための強力な機能も含まれています。では、これらの関数内のサブ関数はどのようにスケジュールされ、割り当てられるのでしょうか。各関数のデプロイメント制御を紹介しましょう。ニュースシステムの実装はシンプルですが、非常に複雑とも言えます。
ニュース システムは、管理者ログイン システム、ニュース管理システム、ユーザー閲覧システムの 3 つの部分に分けることができます。プロセス全体は簡単です。
1. 管理者がニュースを公開 --> データベース --> ユーザーがニュースを閲覧
2. 問題が見つかった --> 管理システムにログイン --> ニュースを編集および変更
上記のプロセスは単純に見えますが、実装はそれほど簡単ではありません。これはシステムです。メッセージ ボードの開発はメッセージ ボードの実装よりもはるかに複雑ですが、基本的な動作原理はメッセージ ボードと同じです。ニュースリリースシステムの最優先事項は、データベースの計画と管理システムの導入です。
今、ニュースの内容は何か:ニュース分類、情報オントロジー。これら 2 つのコンテンツをデータベース内の 1 つのデータ テーブルに含めることもできますが、経済的ではないため、2 つのデータ テーブルを使用して、コンテンツを個別に格納します。1 つはニュースの分類を格納するためのもので、もう 1 つはニュースの分類を格納するためのものです。情報のオントロジー。二重テーブルの内容の共有をどのように呼び出して実現するか? この問題を実現するためにテーブル関連付けを使用します (この知識はここでは紹介しません。データベースに関する知識内容は読者が自分で参照することができます。自分の努力によって得た知識)最も価値がありますよね?)
管理機能の実装は次のとおりです。
1. 1 つ目
は、一連の投稿フォームで構成されており、次の 2 つのカテゴリに分かれています。ニュース カテゴリを作成してニュースを公開する; ニュース カテゴリを作成した後、各カテゴリに関連するニュースを公開するのは非常に簡単です。すべての情報オントロジーが 1 つのデータ テーブルに集中していることを考えてみましょう。
前述のテーブルの
関連付けは、ここでは非常に重要です。もちろん、この方法は必要ありません。しかし、これはコスト効率と関連するものでしょうか?
分類と情報オントロジーが問題を引き起こしていますが、その解決策はテーブルの関連付けを利用することです。
2. 編集、変更、削除の問題
これは php+mysql の知識の基本的な応用であり、ここで注意する必要があるのはそれほど多くはありません。テーブル関連付けを使用しているため、これらの関数はテーブル内で処理されているかのように処理されます。
3. マルチタスク
しかし、多くの人が同時にニュース項目を編集すると、データベースには最後に編集した内容しか保存されなくなるので、これまでの編集者の労力が無駄になってしまうことになります。マルチタスク この問題の解決策は、最初にエディタに入った人には編集権限が与えられ、後から入った人には編集が完了するまで閲覧権限だけが与えられるという、あらかじめ決められたアプローチを取ることです。この機能は Linux の権限制御に非常に似ていますね。
この機能を完了するにはいくつかの方法があります。 Cookie を使用して制御します。2.権限制御フィールドをテーブルに追加します。もちろん、Cookie を使用する方が簡単です。Cookie の実装方法とプロセスは次のとおりです。
管理者がエディターに入って Cookie を設定すると、編集関数のプログラム セグメントが Cookie の値を決定し、空の場合は編集します。空でない場合は、編集が拒否され、エディタが終了します。その後、このサイクルが繰り返され、少なくとも時間と労力の無駄を減らすことができます。
ニュース閲覧機能の実装は非常にシンプルで、(このサイトで紹介されている)ページめくり機能を追加するだけで、非常に重要な機能が欠けているように見えます。検索エンジン。強力な検索エンジンを搭載することはすべての Web サイトの願いですが、強力な検索エンジンの作成には、効率、精度、速度などの多くの側面が含まれます。
ここで紹介する検索エンジンは、そのような詳細な調査は行わず、特定のコンテンツに対して正確なクエリを実行するだけです。複雑で強力な検索エンジンには、多くのプログラミングとデータベースのスキルが必要です。簡単な検索エンジンから始めましょう。検索エンジンはどのように機能するのでしょうか? 指定されたキーワードを受け取り、指定された範囲内で検索し、検索結果を返します。
指定されたキーワードは情報コンテンツのどこにでも存在します。エンジンはどのように検索しますか? ここでは次のデータベース ステートメントが使用されます。
select * from table where (name like '%".$keyword."%');
name は検索する特定の場所、通常は '%".$keyword のようなフィールド名です。 "%" はパターン マッチングです。 、コンテンツ内で $keyword を検索します。例を考えてみましょう:
データ テーブル ニュースでキーワード「good」を含むすべてのタイトルを検索します。
select * from news where (title like '%good%');
これはデータベース内の良いタイトルをすべて見つけることができる正確な検索です。あいまい検索もあります。
select * from news where (title like '%good');
この方法でも結果を見つけることができます。
ニュースにタイトル、メッセージ、ユーザーなどのフィールドが含まれていると仮定すると、タイトルのみが検索されるため、上記の検索範囲が狭すぎます。操作をあまり複雑にせずに他のコンテンツを検索する必要があります。 ?
プログラム内の変更値は変数によって処理されることに気付きました。この方法は、検索する範囲を変数として転送できるため、次のデータベース構文が得られます。
mysql_query("select * from news where ($name like '%".$keyword."%'));
$name には送信されたフィールド変数の値が格納され、この変数値は HTML select を通じてドロップされます。完了しました。たとえば、5 日以内の情報を検索したい場合は、Cookie の導入で使用したデータベース構文を覚えていますか
?結合は次のとおりです。
mysql_query("select * from news where ($name like
'%".$keyword."%') および time>date_sub('$time',interval 5 day)");
ここで、$time は検索の現在の時刻です。 $time=date('Ymd H:i:s'); time は、データベースが情報を格納するフィールドです。 $old を 5 に置き換えます。
mysql_query("select * from news where ($name like
'%".$keyword."%') および time>date_sub('$time',interval $old day)");
同様に、$old の値は、選択送信フォームを通じてさまざまな限られた時間に送信され、この非常に強力な検索エンジンが完成します。一部のより強力な検索エンジンでは、プログラミング スキルの協力が必要です。読者は、上記の原則を通じて独自の実験を拡張できます。