2008-09-17 1 views
0

Я чувствую, что у меня есть основной/глупый вопрос verry, но я никогда не видел/не читал/не слышал ничего в этом направлении.Ограничить ограничение от каких-либо действий до каскадирования во время выполнения

Скажем, у меня есть таблица пользователей (ID пользователя, имя) и таблица предпочтения (идентификатор, USERID, язык). Пример тривиален, но может быть распространен на ситуацию с многоуровневыми отношениями и больше таблиц. Когда мой пользовательский интерфейс запрашивает удаление пользователя, я сначала хочу показать предупреждение о том, что его предпочтения будут удалены. Если в какой-то момент база данных расширяется с большим количеством таблиц и отношений, но программное обеспечение не соответствующим образом адаптируется (клиент не обновлялся) должно отображаться общее сообщение.

Как это реализовать? Пользовательский интерфейс не может знать всю структуру данных и не должен беспокоиться о том, чтобы скрыть все отношения, чтобы вручную удалить все зависящие записи.
Я бы подумал, что это будет связано с ограничениями. Ограничение должно быть без каких-либо действий, поэтому ограничение вызовет ошибку, которая может быть уловлена ​​пользовательским интерфейсом. После того, как пользовательский интерфейс получит подтверждение, ограничение должно стать каскадом .

Как-то я чувствую, как я получаю все это неправильно ..

ответ

1

Что бы я сделал это:

  1. Ограничением является КАСКАД
  2. Приложение проверяет, существуют ли предпочтения.
  3. Если они это сделают, покажите предупреждение.
  4. Если предпочтений не существует или предупреждение принято, удалите клиента.

Изменение отношений базы данных «на лету» не будет хорошей идеей!

Cheers,

RB.

0

Если вы беспокоитесь о том, что пользователь не понимает полного воздействия их удаления, вы можете подумать, что на самом деле не удаляете данные, вместо этого вы можете просто установить флаг в столбце «marked_for_deletion». (впоследствии записи могут быть удалены безопасным временем)
Недостатком является то, что вам нужно помнить о том, чтобы отфильтровать отмеченные строки в других запросах. Это можно смягчить, создав представление в таблице с отфильтрованными выделенными строками, а затем всегда используя представление в ваших запросах.

Смежные вопросы