假设您有一个ServiceCall数据库表,可记录所有对您进行的服务调用。每条记录都包含与客户记录的多对一关系,其中存储哪个客户进行了服务呼叫。实体删除策略
好吧,假设客户已经停止与您做生意,并且您不需要客户的数据库记录。创建新的ServiceCall记录时,不再需要客户的名称出现在下拉列表中。
你是做什么的? 你允许用户从数据库中删除客户的记录吗?
您是否为该客户的记录设置了一个特殊列IsDeleted为true,然后确保所有下拉列表都不会加载所有IsDeleted设置为true的记录?虽然这样可以防止旧记录在内部连接中断,但它也会阻止用户添加与旧客户同名的新记录,不是吗?
你是否不允许删除?只是允许'禁用'它?
您使用过的其他策略?我猜测每个人都有自己的想法,我只需要看看你的意见。
当然,上述内容相当简单,通常一个ServiceCall记录将链接到许多其他实体表。所有这些在需要删除时都会面临同样的问题。
嗨Tetraneutron, 感谢您的回答。 我给你一个'but',哈哈。 但是,如果系统的用户添加(有意或无意)具有相同名称的新客户。系统现在是不是有两个同名的客户,并且没有彼此链接(历史记录)。是的,内部CustomerID将使其在数据库中独一无二,但从用户的角度来看......嗯。 – Lasker 2009-06-05 04:35:48