1

假设您有一个 ServiceCall 数据库表,它记录了对您进行的所有服务调用。此记录中的每一个都包含与客户记录的多对一关系,其中存储了哪个客户进行了服务呼叫。

好的,假设客户已停止与您开展业务,并且您不需要客户在数据库中的记录。创建新的 ServiceCall 记录时,不再需要客户的姓名出现在下拉列表中。

你做什么工作?您是否允许用户从数据库中删除客户的记录?

您是否为该客户的记录设置了一个特殊列 IsDeleted 为 true,然后确保所有下拉列表不会加载所有 IsDeleted 设置为 true 的记录?虽然这可以防止旧记录在内部连接处被破坏,但它也可以防止用户添加与旧客户同名的新记录,不是吗?

你根本不允许删除吗?只允许“禁用”它?

你用过其他什么策略吗?我猜每个人都有自己的方式,我只需要看看你的意见。

当然上面是相当简化的,通常一条ServiceCall记录会链接到很多其他的实体表。当需要删除它们时,所有这些都将面临同样的问题。

4

2 回答 2

2

我更喜欢设置 IsDeleted 标志,其中一个好处是您仍然可以报告历史信息(所有数据仍然存在)。

至于无法插入另一个同名客户的问题,如果您使用通常自动填充的 ID 列(例如 CustomerId),这不是问题。

于 2009-06-05T04:21:56.383 回答
0

我同意@Tetraneutron 的回答

此外,您可以创建一个仅列出活动客户的视图,以便更方便地填充下拉列表等。

于 2009-06-05T04:31:03.870 回答