私は3つのテーブルを持っています:
`brands` (`id`, `name`)
`categories` (`id`, `name`)
`products` (`id`, `name`, `brand_id`, `category_id`)
他にも列がありますが、これらは問題に関連する唯一のものです。
3 つのテーブルすべてで同じものを共有したいauto_increment
id
(つまりid
、3 つのテーブルを一意に交差させる)。後者は、適切なテーブルを参照する共通テーブルを使用することで簡単に解決できます。
`entries` (`id`, `name`, `type_id`)
問題は、元のシナリオではすべてのテーブルに外部制約があることです。
- カテゴリが削除された場合は、NULL を設定します products.category_id
- ブランドが削除されている場合は、products.brand_id をカスケードします。
- 商品が削除された場合、すべてのレビューをカスケードします
代替手段は何ですか?