すべてのエントリに 3 つのレベルのキーワード システムを構築したいと考えています。提案されているように、カテゴリの情報用に 1 つのテーブル (ctypes) を作成し、エントリを含む関係テーブル用に 1 つ (カテゴリ) を作成しました。
CREATE TABLE ctypes (
cat_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
cat_name VARCHAR(20) NOT NULL,
cat_level INT UNSIGNED NOT NULL,
parent_id INT UNSIGNED,
PRIMARY KEY (cat_id),
UNIQUE (cat_name)
);
CREATE TABLE categories (
entry_id INT UNSIGNED NOT NULL,
cat_ids VARCHAR(100) NOT NULL,
UNIQUE (entry_id)
);
次に、チェックボックスでキーワード情報を収集するフォームを作成しました。
<form action="add_category.php" method="post">
<table>
<tr>
<td><b>Level 1(A,B,C)</b></td>
<td><b>Level 2(Aa,Ab,Ac)</b></td>
<td><b>Level 3(Aa1,Aa2,Aa3)</b></td>
</tr>
<tr>
<td>A</td>
<td>Aa</td>
<td><input type="checkbox" name="cat[]" value="5" />Aa1<td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="checkbox" name="cat[]" value="6" />Aa2</td>
</tr>
<tr>
<td></td>
<td>Ab</td>
<td><input type="checkbox" name="cat[]" value="7" />Ab1</td>
</tr>
...
</table>
<input type="hidden" name="eid" value="1" />
<input type="submit" name="submit" value="submit" />
</form>
そして、entry_id と cat_id の関係テーブルを作成しました。$cat[] データをテーブルに保存する方法を教えてください。
では、このエントリごとのキーワードの編集(追加/削除)と、(1番目、2番目、3番目のキーワード)でエントリを検索する方法を教えてください。