UI问题:保护关键删除? [英] UI Question: Protecting Critical Delete?

查看:65
本文介绍了UI问题:保护关键删除?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有应用程序,你*真的*不想删除某些项目

意外,但用户只需要有一个删除即可。按钮。


我目前的策略:


计划A:

--------- -------------------------------------------------- -------------

1)将cmd按钮设为黑色,不要给它加速键。


2 )发出两个级别的确认(你想删除......你真的想要

删除)。


3)记录删除.INI文件

--------------------------------------- ---------------------------------


PlanB:

--------------------------------------------- ---------------------------

1)不要将加速键分配给cmd按钮/>
2)发出一个确认

3)不要只是删除,而是将所有受影响的父/子记录移动到存档中。 DB - 与生产相同的格式,只是空的。

-------------------------------- ----------------------------------------


我想我已经做了一两次B计划。由于像autonumber字段这样的东西,它并不像在
中听起来那么简单。


计划A是我惯常的方法,但我'我并不喜欢它。


任何人都有更有创意的方法吗?

-

PeteCresswell

I''ve got apps where you *really* wouldn''t want to delete certain items by
accident, but the users just have to have a "Delete" button.

My current strategies:

Plan A:
------------------------------------------------------------------------
1) Make the cmd button black and do not give it an accelerator key.

2) Issue two levels of confirmation (Do you want to delete... Do you REALLY want
to delete).

3) Log the delete in the .INI file
------------------------------------------------------------------------

PlanB:
------------------------------------------------------------------------
1) Do not assign an accelerator key to the cmd button.
2) Issue one confirmation
3) Instead of just deleting, move all Parent/Child records affected
to an "archive" DB - same format as production, just empty.
------------------------------------------------------------------------

I think I''ve done Plan B once or twice. It''s not as simple as it may sound at
first because of things like autonumber fields.

Plan A is my usual approach, but I''m not exactly in love with it.

Anybody got a more creative approach to this?
--
PeteCresswell

推荐答案

"(PeteCresswell)" < x@y.Invalidwrote in

news:t7 ******************************* *@4ax.com:
"(PeteCresswell)" <x@y.Invalidwrote in
news:t7********************************@4ax.com:

我有应用程序,你*真的*不想删除某些

项目不小心,但用户只需要一个删除

按钮。


我目前的策略:


计划A:

------------------------------------ -------------------------------

----- 1)制作cmd按钮黑色并且不要给它一个

加速键。


2)发出两级确认(你想要删除......吗? >
你真的想要删除)。


3)在.INI文件中记录删除

-------- -------------------------------------------------- ---------

-----


PlanB:

------ -------------------------------------------------- -----------

----- 1)不要将加速键分配给cmd按钮。

2)发出一个确认

3)不要只是删除,移动所有父/子记录

受影响

到一个& ;归档" DB - 与生产相同的格式,只是空的。

-------------------------------- -----------------------------------

-----


我想我已经做了一两次计划B.它不是那么简单,因为像自动编号字段这样的东西,最初可能听起来是



计划A是我惯常的方法,但我'我并不完全爱上它。


任何人都有更有创意的方法吗?
I''ve got apps where you *really* wouldn''t want to delete certain
items by accident, but the users just have to have a "Delete"
button.

My current strategies:

Plan A:
-------------------------------------------------------------------
----- 1) Make the cmd button black and do not give it an
accelerator key.

2) Issue two levels of confirmation (Do you want to delete... Do
you REALLY want to delete).

3) Log the delete in the .INI file
-------------------------------------------------------------------
-----

PlanB:
-------------------------------------------------------------------
----- 1) Do not assign an accelerator key to the cmd button.
2) Issue one confirmation
3) Instead of just deleting, move all Parent/Child records
affected
to an "archive" DB - same format as production, just empty.
-------------------------------------------------------------------
-----

I think I''ve done Plan B once or twice. It''s not as simple as it
may sound at first because of things like autonumber fields.

Plan A is my usual approach, but I''m not exactly in love with it.

Anybody got a more creative approach to this?



不要删除任何东西。只需在记录中有一个DELETED标志,并且

将删除按钮标记为已删除。然后你的

表格/报告/等。排除所有标记为已删除的记录。


恢复删除只需清除

已删除标记字段。而且您不需要为父/子表格存档表

等烦恼。


永远不应删除某些类型的数据。例如,一张带发票的客户不能被删除,因为这会弄乱会计记录。
会计记录。您可能希望隐藏不活跃的客户,例如
,例如去年没有购买任何东西的人

或者两个。

您在UI中描述的内容对我来说听起来很可怕。如果他们应该允许这样做,那么让他们这样做,不要让他们觉得这不好。如果并非所有用户都有资格做出决定,那么只能向某些合格的

用户授予删除权限。并且不允许删除的用户应该没有删除

按钮可见(这意味着隐藏它而不是仅仅禁用它),

原则上你不能我想建议用户可以做一些他们不允许做的事情。


-

David W. Fenton http://www.dfenton.com/

usenet at dfenton dot com http://www.dfenton.com/DFA/

Don''t delete anything. Just have a DELETED flag in the record, and
have the delete button mark it deleted. Then have your
forms/reports/etc. exclude all records marked deleted.

Restoring a deletion then requires nothing more than clearing the
Deleted flag field. And you won''t need to bother with archive tables
and the like for the parent/child tables.

Certain kinds of data should never be deleted. For instance, a
customer with invoices can''t ever be deleted as that would mess up
the accounting records. You might want to hide inactive customers,
though, such as ones who''ve not purchased anything in the last year
or two.

The things you describe in the UI sound horrid to me. If they should
be allowed to do it, then let them do it and don''t make them feel
bad about it. If not all the users are qualified to make that
decision, then only give the delete permission to certain qualified
users. And a user who is not allowed to delete should have no delete
button visible (that means hiding it instead of just disabling it),
on the principle that you don''t want to suggest a user can do
something they are not allowed to do.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/


Per David W. Fenton:
Per David W. Fenton:

>你在UI中描述的东西听起来很可怕。如果他们应该被允许这样做,那就让他们这样做,不要让他们感到不好。
>The things you describe in the UI sound horrid to me. If they should
be allowed to do it, then let them do it and don''t make them feel
bad about it.



我也是 - 但是计划A的多个提示首先被我的一个用户想到

谁只是*有*到完全按照这种方式......所以我坚持下去....


我在一个应用程序中尝试过IsDeleted。


可能再做一次......可能不会。我发现增加的复杂性

在应用程序中传播的程度比人们想象的要大。


例如当用户去删除他们*知道*没有被任何人使用的

查找表项时,引用完整性会引起它的反响。还有一些

用户做临时报告时不会知道,他们的报告也会相应地歪斜。


像这样,必须确保每个查询都看到IsDeleted

让我脱离它 - 引导我进入归档策略。


你得到600 -700在应用程序中报告,迟早,我将忘记

IsDeleted并且结果将通过测试,因为情况不是
遇到了,并且报告在将来的某个时候会出错。


说了这么多,你可能是对的。当然,我还没有能够用更好的东西来兑现
。当前的应用程序非常简单,我可以

可能将IsDeleted开关限制在一张桌子上使用。

-

PeteCresswell

Me too - but Plan A''s multiple prompts were first thought of by one of my users
who just *had* to have it exactly that way.... So I stuck with it....

I''ve tried the IsDeleted thing in one application.

Might do it again... might not. What I found is that the added complexity
propagates through the app to a greater degree than one might think.

e.g. Referential Integrity raises it''s head when the user goes to delete a
lookup table item that they *know* isn''t being used by anybody. Also some
users doing ad-hoc reporting will not know about it and their reports will be
skewed accordingly.

Things like that and having to make sure every single query looks at IsDeleted
put me off of it - and steered me to the archive strategy.

You get 600-700 reports in an app and sooner or later, I''m going to forget about
IsDeleted and the results are going to pass testing because the situation wasn''t
encountered and the reports going to be wrong sometime in the future.

Having said all that, you might be right. Certainly I haven''t been able to come
up with anything better. The current app is pretty straightforward and I could
probably confine use of an IsDeleted switch to a single table.
--
PeteCresswell


我必须同意大卫;即使用户告诉我数据可以被删除,在过程分析期间,我很少接受他们的话,并在缓冲中建立

。删除记录的时间......不是。解决报告

问题很简单 - 永远不要将报告绑定到表。创建一组

基本查询,每个* data *表一个,Deleted标志设置为Is

Null或False或任何合适的。使用这些查询作为

所有其他查询的基础。


hth

"(PeteCresswell)" < x@y.Invalidwrote in message

news:gm ****************************** ** @ 4ax.com ...
i''d have to agree with David; even when users tell me that data can be
deleted, during process analysis, i rarely take them at their word and build
in a "cushion" of time where deleted records...aren''t. solving the reports
problem is simple enough - never bind a report to a table. create a set of
base queries, one for each *data* table, with the Deleted flag set to Is
Null or False or whatever is appropriate. use those queries as the base for
all other queries.

hth
"(PeteCresswell)" <x@y.Invalidwrote in message
news:gm********************************@4ax.com...

Per David W. Fenton:
Per David W. Fenton:

你做的事情在UI中描述听起来很可怕。如果他们应该允许这样做,那么让他们这样做,不要让他们觉得这不好。
The things you describe in the UI sound horrid to me. If they should
be allowed to do it, then let them do it and don''t make them feel
bad about it.



我也是 - 但是计划A的多个提示首先被我的


Me too - but Plan A''s multiple prompts were first thought of by one of my


$ b $想到了b用户

users


谁只是*有*完全按照那种方式......所以我坚持了它......


我已经在一个应用程序中尝试了IsDeleted。


可能再做一次......可能不会。我发现添加的
who just *had* to have it exactly that way.... So I stuck with it....

I''ve tried the IsDeleted thing in one application.

Might do it again... might not. What I found is that the added



复杂度

complexity


在应用程序中传播的程度大于一可能会想。


例如当用户去删除他们*知道*没有被任何人使用的

查找表项时,引用完整性会引起它的反响。另外
propagates through the app to a greater degree than one might think.

e.g. Referential Integrity raises it''s head when the user goes to delete a
lookup table item that they *know* isn''t being used by anybody. Also



一些

some


做临时报告的用户不会知道它,他们的报告将是
users doing ad-hoc reporting will not know about it and their reports will




be


相应地倾斜。


这样的事情并且必须确保每个查询都看到
skewed accordingly.

Things like that and having to make sure every single query looks at



IsDeleted

IsDeleted


让我脱离它 - 和引导我进入归档策略。


你在一个应用程序中得到600-700个报告,迟早会忘记
put me off of it - and steered me to the archive strategy.

You get 600-700 reports in an app and sooner or later, I''m going to forget




about


IsDeleted并且结果将通过测试,因为情况
IsDeleted and the results are going to pass testing because the situation



不是

wasn''t

遇到
,将来某些时候报告会出错。


说了这么多, 你可能是对的。当然我还没有能够
encountered and the reports going to be wrong sometime in the future.

Having said all that, you might be right. Certainly I haven''t been able




to come


以及更好的东西。当前的应用程序非常简单,我需要b $ b
up with anything better. The current app is pretty straightforward and I



可以

could


可能将使用IsDeleted开关限制为a单桌。

-

PeteCresswell
probably confine use of an IsDeleted switch to a single table.
--
PeteCresswell



这篇关于UI问题:保护关键删除?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆