【发布时间】:2011-01-05 19:50:42
【问题描述】:
假设我有这 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 是主键
在查询表中:- 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 将显示为 Deactivated 并且仅 那么用户可以永久删除它。
我的想法正确吗?
目前在我的 DeleteQuesType 存储过程中我正在做的是:-
设置 Active=false 和 设置 QuesTye= 一些字符串,例如 XXInactiveXX
还有其他方法吗?
编辑 如果我只想以这种方式实现,比如首先让用户停用 QuesType,并且只有当它被停用时,用户才能永久删除它。这是正确的逻辑吗?
【问题讨论】:
标签: c# asp.net sql-server sql-delete relationships