0

ブログを作成していますが、記事を分類する最善の方法を決定できません。

私が最善だと思った現在の方法は、次の行を含む article テーブルにカテゴリを含めることです。

  articles structure
+----------------------+
| article_id           |
| article_title        |
| article_content      |
| article_category     |
+----------------------+

私が書く各記事には、記事のカテゴリを含めます。例。

+------------+---------------+------------------+------------------+
| article_id | article_title | article_content  | article_category |
+------------------------------------------------------------------+
|     1      | How do I....  | Want to know...  |      How-to      | 
|     2      | Learn faceb.. | Facebooks new... |  Social Network  | 
+------------+---------------+------------------+------------------+

両方を一緒に取得するために使用if(isset($_GET['article_id']) && isset($_GET['article_category'])){ }しますか、それとも特定のカテゴリ用に新しいテーブルを作成する方がよいでしょうか? 以下に例を示します。

  categories structure
+-----------------+
| category_id     |
| category_title  |
| article_id      |
+-----------------+

カテゴリに基づいて記事を取得する必要があるときはいつでも、カテゴリ テーブルからそれを使用します (上記のカテゴリ構造は単なる例です)。

また、誰かが簡単な質問に答えるためにもう少し時間を割いてくれれば幸いです。情報の例として、上記の記事の表を使用します。

以下を使用して記事を取得する代わりに、

www.example.com/article.php?article_id=1&article_category=How-to

記事の URL を次のように表示したいのですが、これは mod_rewrite を使用して実現できますか? または、可能にするためにサーバーにフォルダーを作成する必要がありますか?

www.example.com/How-to/How-do-i

stackoverflow は mod_rewrite を使用して次のことを行いますか?

www.stackoverflow.com/questions/id/title?

注:URLにタイトルを表示する方法は知っていますが、書き換えについて疑問に思っているだけです。

お時間をいただきありがとうございます。

4

3 に答える 3

1

データベースからのデータの保存/取得に関しては、非常に簡単なアプローチは 3 つのテーブルを持つことです。記事テーブルは同じままですが、カテゴリ テーブルから記事 ID を削除する必要があります。3 番目のテーブルは、2 つの間の M:N 関係をマップし、次のようになります。

id   | article_id |  cat_id
---------------------------

記事がカテゴリとともに保存されると、新しいエントリがこのテーブル (articles_categories_map と呼びます) に配置され、2 つが関連付けられます。すべての記事をカテゴリ別に取得する場合、クエリは次のようになります。

SELECT `article_id` FROM `articles` INNER JOIN `articles_categories_map`
ON `articles`.`id`=`articles_categories`.`article_id` INNER JOIN `articles_categories` 
ON `articles_categories_map`.`category_id`=`articles_categories`.`id`
WHERE `articles_categories`.`title` = ""

注: この方法では、複数のカテゴリを 1 つの記事に関連付けることができ、その逆も可能です。

URL の書き換えに関しては、mod_rewrite で確実に実行できます。MVC を使用する場合は、この問題に対する一般的なアプローチを調査するのに少し時間がかかるはずです。これにより、ルールをどのように構成するかについての洞察が得られます。

乾杯

于 2013-11-12T23:02:51.380 に答える