データベースにAppointmentsテーブルとCentersテーブルの関係を設定しようとしています。
システムに関する1つの癖は、ユーザーのエリアにセンターが記録されていない場合でも、予定を記録できるようにする必要があることです。この場合、リンクcentreid
の値は0になります。
これは、次のエラーが発生していることを意味します。
ALTERTABLEステートメントがFOREIGNKEY制約'fk_appointments_centres"と競合しました。
関係を作成するために使用しているコードは次のとおりです。
alter table appointments
add constraint fk_appointments_centres
foreign key (centreid)
references centres(centreid)
on delete cascade
go
クライアントはシステムからセンターを削除する機能を必要としているため、これは非常に重要です。その場合、データを適切に維持するために、センターが削除された場合はセンターの予定も削除する必要があります。
理想的には、この関係を機能させたいのですが、Centersテーブルのcenterid列がそうであるように、IDENTITY_INSERT ON
これは機能しないと思います。
他に2つのオプションが考えられますが、それらは理想的ではないため、可能であればこれを機能させたいと思います。
誰かが私を助けることができますか?
編集
MSDNで、誰かが既存のデータを検証しないことを勧めたところを見たところです。これはうまくいくようですが、これは今後のデータ入力にどのように影響しますか?ここで参照