Допустим, у меня есть следующие 2 таблицы QuesType и Ques: -
QuesType
QuestypeID|QuesType |Active
------------------------------------
101 |QuesType1 |True
102 |QuesType2 |True
103 |XXInActiveXX |False
Ques
QuesID|Ques|Answer|QUesTypeID|Active
------------------------------------
1 |Ques1|Ans1 |101 |True
2 |Ques2|Ans2 |102 |True
3 |Ques3|Ans3 |101 |True
В таблице QuesType: - QuesTypeID - это первичный ключ
В таблице Ques: - QuesID - этоПервичный ключ и идентификатор QuesType - это внешний ключ, который ссылается на QuesTypeID из таблицы QuesType
. Теперь я не могу удалить записи из таблицы QuesType, я могу только сделать QuesType неактивным, установив Active = False.Я не могу удалить QuesTypes навсегда из-за связи внешнего ключа, которую оно имеет с таблицей вопросов.Итак, я просто установил столбец Active = false, и тогда эти типы заданий не будут отображаться в моей сетке, когда она ограничена.
Что я хочу сделать, так это иметь возможность удалять любой тип QuesType постоянно.Теперь он может быть удален только в том случае, если он не используется нигде в таблице Ques, верно?
Итак, чтобы удалить любой тип QuesType навсегда, я подумал, что это то, что я мог бы сделать: -
В сеткекоторый отображает QuesTypes, у меня есть этот флажок для Active и кнопка для удаления. Что я думал, когда пользователь отключает некоторые QuesType, тогда запускается событие OnCheckChanged (), в котором будет код для удаления всех таблиц вопросов в Ques.которые используют этот QuesTypeID.Затем в сетке QuesType этот QuesType будет отображаться как деактивированный, и только тогда пользователь сможет удалить его навсегда.
Правильно ли я думаю?
В настоящее время в моей хранимой процедуре DeleteQuesType я делаю следующее: -
Установка Active = false и Установка QuesTye = некоторой строки, например XXInactiveXX
Есть ли другой способ?
edit Что делать, если я хочу реализовать только таким способом, например сначала заставить пользователя деактивировать QuesType, и только если он деактивирован, пользователь может удалить его навсегда.Это правильная логика?