假设我有这两个表 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 ID 是从 QuesType 表中引用 QuesTypeID 的外键
现在我无法从 QuesType 表中删除记录,我只能通过设置 Active=False 使 QuesType 处于非活动状态。我无法永久删除 QuesTypes,因为它与 Ques Table 有外键关系。所以,我只是设置列 Active=false 并且那些 Questypes 在绑定时不会显示在我的网格上。
我想要做的是能够永久删除任何 QuesType。现在只有在 Ques 表中的任何地方都没有使用它时才能删除它,对吧?
因此,要永久删除任何 QuesType,我认为这是我可以做的:-
在显示 QuesTypes 的网格中,我有一个用于活动的复选框和一个用于删除的按钮。我的想法是,当用户使某些 QuesType 处于非活动状态时,OnCheckChanged() 事件将运行,并且将具有删除所有问题的代码在使用该 QuesTypeID 的 Ques 表中。然后在 QuesType 网格上,该 QuesType 将显示为已停用,然后用户才能将其永久删除。
我的想法正确吗?
目前在我的 DeleteQuesType 存储过程中,我正在做的是:-
设置 Active=false 并设置 QuesTye= 一些字符串,如 XXInactiveXX
还有其他方法吗?
编辑如果我只想以这种方式实现怎么办,比如首先让用户停用 QuesType,并且只有当它被停用时,用户才能永久删除它。这是正确的逻辑吗?