Удаление обеих записей в отношении 1 к 1 - PullRequest
0 голосов
/ 01 февраля 2011

Привет У меня есть 2 таблицы A и B. Между A и B есть отношение 1 к 1. Теперь скажите, что у меня есть записи в A и B (A1 и B1), которые связаны через это отношение 1 к 1. Как бы я удалил обе записи? Если я удаляю A1 1st, я получаю ошибку конфликта, то же самое касается B1.

Мне просто любопытно

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Смоделируйте соотношение между A и B в таблице C.C будет ссылаться (FK) на A и B.Чтобы удалить связь, удалите соответствующую строку в C.Вопрос о том, следует ли также удалять объекты A и / или B, является отдельным вопросом.

0 голосов
/ 01 февраля 2011

Какую базу данных вы используете, MSSQL ORACLE, MySql?Некоторые базы данных поддерживают каскадное удаление (первые две, о которых я упоминал, поддерживают это точно).Или есть другой способ, используйте триггер.Подцепите его, удалив один, который вызовет секунду, но сначала отключите согласованность этих двух таблиц и, в конце концов, включите его.

Редактировать: если вы используете MSSQL, вы можете настроить каскадное удаление, напримерэтот.(если ваша схема подобна Таблице A, имеет Первичный ключ, который является первичным / foreighn ключом в таблице B)

ALTER TABLE [dbo].[YourTable]  WITH CHECK ADD  CONSTRAINT     
[FK_YourTable1_YourTable2] FOREIGN KEY([YourForeignKey])
REFERENCES [dbo].[YourTable2] ([Id])
ON DELETE CASCADE
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...