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_cams
B点の表
カスケードに戻る - たとえば、スピード違反のカム レコードを削除すると、一連のポイント A と B もすべてpoints
テーブルから削除する必要があります。cctv カム レコードも同様です。