0

コミックを共有するために PHP で Web サイトを構築しています。カテゴライズを実装して、見たい漫画をフィルタリングできるようにしたいと思います。

以前にこの質問をしたことがありますが、当時、私のサイトのアーキテクチャはデータベースを使用していませんでした。その後、データベースを実装しました (これは驚くべきことです) ので、変更する必要があります。

私はこれを行う方法は次のように考えています:

1) 2 つのテーブルを作成します。1 つはカテゴリ用、もう 1 つは画像用です。

2)画像が存在するファイルシステムフォルダーに基づいて、画像をそれぞれのテーブルに挿入し、そのテーブルIDを割り当てます

3) 新しく割り当てられたカテゴリ ID を使用して、すべての画像を A​​ll_Images テーブルに挿入します。

4) ユーザー入力を取り入れて、表示する画像を決定します。したがって、ユーザー入力 = cat 1 の場合、カテゴリ 1 ID の画像を表示します。

したがって、基本的には、ファイル システムから画像を取得するときに、最初に画像にカテゴリを割り当てる方法が必要です。これを行う簡単な方法はありますか?複数のテーブルを作成する必要がありますか?

これについて何か考えはありますか?

ありがとう!!

4

3 に答える 3

4

通常の方法は、画像テーブル (おそらく実際の画像ではなくファイル名を使用) を作成してから、各コミックに複数のコミックを含めることができるように、カテゴリと 1 対多の関係にすることです。

Table:Image
-----------
rowid: integer identity
displayname: varchar
filename: varchar

Table:Category
--------------
rowid: integer identity
displayname: varchar

Table:ImageCategoryLink
-----------------------
imageid: integer foreign key references Image:rowid
categoryid: integer foreign key references Category:rowid

クリア?

于 2012-09-21T13:58:57.350 に答える
1

ID と名前などを含む 1 つのテーブル カテゴリ、ID src 名などを含む画像用の 1 つのテーブル。

その後の2つの選択肢:

  • 画像にカテゴリが 1 つだけある場合は、テーブル画像にフィールド id_category を配置します
  • 画像に複数のカテゴリを含めることができる場合は、id_image と id_category を使用して別のテーブル image_category を作成します。
于 2012-09-21T13:58:03.487 に答える
0

あなたは初心者なので(悪意はありません)、テーブルに何百万もの漫画や漫画があるとは思いません. カテゴリには、SET フィールド (漫画のカテゴリが 1 つしかない場合は ENUM) を使用します。

これを使用するとマイナスの副作用があるため (主にカテゴリを変更したい場合)、これに反対票を投じる人がいます。ただし、比較的小さなテーブルでは、これは何の効果もありません。

これが最も簡単な解決策になります。サイトが大きくなることが予想される場合は、カテゴリ用に 2 つ目のテーブルを使用し、それらのテーブルを結合します。

于 2012-09-21T14:02:17.540 に答える