0

次のものがあるとします (サンプル構造とデータ):

Table category
======================

id (PK)  name
-----------------
45       computers
50       sports


Table category_tag
======================

id (PK)  name         cat_id (FK)
---------------------------------
100      keyboard     45
120      football     50


Table listing_category
======================

list_id (PK)    cat_id (PK/FK)
------------------------------
10001           45
10001           50


Table listing_tag
======================

list_id (PK)    cat_tag_id (PK/FK)
----------------------------------
10001           100
10001           120

上記の例では、テーブルから行が削除されたときに、listing_categoryテーブル内の関連するエントリも削除する必要がありますlisting_tag

これで、テーブル「category」とテーブル「category_tag」を組み合わせることができることがわかりましたが、category_tagテーブルには余分なフィールドとデータが含まれているため、これらを別々にしておくことを好みます。

もう 1 つのオプションは、cat_idテーブルに列を追加するlisting_tagことですが、可能な限りデータの重複を避けたいと考えています。

上記のテーブル構成を使用して「カスケード削除」外部キー制約を作成することは可能ですか? そうでない場合、これが機能するようにテーブルを変更するにはどうすればよいですか?

4

1 に答える 1