Каков правильный порядок вставки/удаления/изменения набора данных?

MSDN утверждает, что порядок :

  1. Дочерняя таблица: удалить записи.
  2. Родительская таблица: вставка, обновление и удаление записей.
  3. Дочерняя таблица: вставка и обновление записей.

У меня с этим проблема.

Пример: ParentTable содержит две записи parent1(Id : 1) и parent2(Id : 2)

ChildTable содержит запись child1(Id : 1, ParentId : 1)

новый родитель parent2, а затем мы удаляем parent1.

  1. Нам нечего удалять в дочерней таблице.
  2. Мы удаляем parent1 : мы нарушили ограничение, потому что дочерний элемент все еще привязан к parent1, если мы не обновим его сначала.

Итак, каков правильный порядок и является ли MSDN ложным по этому вопросу?

Мои личные мысли таковы:

  1. Дочерняя таблица: удалить записи.
  2. Родительская таблица: вставка, обновление записей.
  3. Дочерняя таблица: вставка и обновление записей.
  4. Родительская таблица: удалить записи.

Но проблема в том, что с потенциально уникальным ограничением мы всегда должны удалять записи в таблице, прежде чем добавлять новые... Так что у меня сейчас нет решения для фиксации моих данных в моей базе данных.

Изменить: спасибо за ответы, но ваш крайний случай - мой повседневный случай... Я выбираю уродливое решение с отключенным ограничением, затем обновляю базу данных и снова включаю ограничение. Я все еще ищу лучшее решение..

16
задан Cyril Gandon 25 March 2013 в 13:43
поделиться