2011-09-10 4 views

ответ

11

Nullifying применим только в особых случаях; скажем, например, у вас есть проекты, которые может или не может обследовать один и только один агент (так что поле его внешнего ключа со ссылкой на агента может быть нулевым). Если агент отказывается от всех опросов, которые он обрабатывает (допустим, он был уволен), вы не хотите уничтожать запись проекта, но вы не можете позволить ему ссылаться на запись агента, которая больше не будет существовать, поэтому вы аннулируете его внешней ключевой области.

+0

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

+0

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

+5

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

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