故事
我将编写一些代码来管理应用程序中的已删除项目,但我将对它们进行软删除,以便在需要时可以返回它们。在隐藏或删除项目时,我的应用程序逻辑遵循一定的层次结构。
我在应用程序中逻辑地将我的项目放置在三个容器中:国家、城市、区域和品牌。 每个项目都应该属于一个国家、一个城市、一个区域和一个品牌。 现在,如果我删除了一个国家,它应该删除属于给定国家的城市、区域、品牌和项目。如果我删除了城市,它也应该删除其下的所有内容(区域、品牌等)。
注意
当我删除一个国家并删除相关品牌时,我应该注意到一个品牌可能在多个国家拥有物品。
问题
你建议
标记项目(无论是国家、城市、项目等)为已删除状态,这将需要大量的代码来检查每次从数据库加载任何项目时,是否已删除,还需要一些额外的字段来标记它所属的城市是否已删除,以及它所属的国家是否已删除等。
将已删除的内容移动到特定的表中(DeletedCountries、DeletedCities等),并保存它们所关联的项目的ID,以便稍后将它们插入回其原始表中。当然,这将节省我的应用程序所有管理已删除项目并确保删除所有层次结构的代码。
也许你有更好的方法/建议/想法来实现这样的事情!
where isdeleted<>1
麻烦。(这可能会稍微加速SQL Server) - Earlz