pointsフィールドを持つテーブルがあります
id(primary key), lat, lon
またcctv_camsテーブル
cctv_id(primary key), point_id, name
そして最後にspeeding_camsテーブル
speeding_id(primary key), point_id_a, point_id_b, name
それぞれ、cctv_cams独自speeding_camsのポイント セットがあります。彼らは同じ点を共有していません。1 つcctv_camsの行で複数の行を参照できpointsます。cctv_cams対応する がない場合、行は存在できませんpoints。
外部キーを設定しようとしたので、 を削除するcctv_camsと、対応pointsするものもすべて削除されます。これを達成するには、すべてのテーブルで外部キーを定義する必要があるように見えますか?
更新:テーブルの再設計に関する説明
ポイント自体は 1 つの行ではなく、pointsテーブル内の一連の行です。1 つの論理ポイントに対して、多くのポイントを挿入すると、一連のすべてのポイントが 1 つのポイントとして識別されます。このような一連のポイントを参照する必要がある 3 つの情報源があります。
cctv_camsテーブルspeeding_cams点 A の表speeding_camsB点の表
カスケードに戻る - たとえば、スピード違反のカム レコードを削除すると、一連のポイント A と B もすべてpointsテーブルから削除する必要があります。cctv カム レコードも同様です。