比方说,我有这2个表QuesType和疑问句: -如何在链接表中永久删除记录?
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处于非活动状态。 由于与Ques表具有外键关系,我无法永久删除QuesType。所以,我只设置 列Active = false,然后这些Questypes在绑定时不会显示在我的网格上。
我想要做的是能够永久删除任何QuesType。现在它只能被删除,如果它没有在Ques表中的任何地方使用 ,对吧?
所以要永久删除任何QuesType我认为这是我能做什么: -
在显示QuesTypes网格,我有主动此复选框并delete.What一个按钮,我认为是,当用户 使某些QuesType处于非活动状态,然后OnCheckChanged()事件将运行,并且该代码将删除正在使用该QuesTypeID的Ques表中的所有问题 。然后在QuesType网格上,QuesType将显示为“已禁用”,并且只有用户可以永久删除它。
我是否正确思考?
目前在我的DeleteQuesType存储过程是什么我做的是: -
设置激活=假, 设置QuesTye =一些字符串如XXInactiveXX
有没有其他办法?
编辑 如果我只想实现这种方式,比如先让用户停用QuesType,并且只有在用户可以永久删除它时停用。那是正确的逻辑吗?
恩,但是如果我只想实现这种方式,比如先让用户停用QuesType,并且仅在用户可以永久删除它时停用。那是正确的逻辑吗? – Serenity 2011-01-05 20:00:20
您已经有了一个活动列,只需在删除之前查询它以确保它为假。您可以使用触发器自动执行此操作,但如果您是初学者,那么我可能会建议您不要这样做。 – BG100 2011-01-05 20:11:22