<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The trouble with soft delete</title>
	<atom:link href="http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/feed/" rel="self" type="application/rss+xml" />
	<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/</link>
	<description>The adventures of a young kiwi software developer in London</description>
	<lastBuildDate>Tue, 31 Jan 2012 19:56:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Relational database versioning strategies &#124; JonBlog</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-48117</link>
		<dc:creator>Relational database versioning strategies &#124; JonBlog</dc:creator>
		<pubDate>Sun, 27 Nov 2011 11:39:56 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-48117</guid>
		<description>[...] of a unversioned table. It also adds a layer of complexity to all queries on the table (see here). The Propel ORM team has also noted several problems with the approach, and recommends an archive [...]</description>
		<content:encoded><![CDATA[<p>[...] of a unversioned table. It also adds a layer of complexity to all queries on the table (see here). The Propel ORM team has also noted several problems with the approach, and recommends an archive [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ranu Mandan</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-42092</link>
		<dc:creator>Ranu Mandan</dc:creator>
		<pubDate>Mon, 19 Sep 2011 16:50:39 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-42092</guid>
		<description>there is one more way of handling archived data , is by writing a purging job against an isdeleted = true records</description>
		<content:encoded><![CDATA[<p>there is one more way of handling archived data , is by writing a purging job against an isdeleted = true records</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Bundy</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-38571</link>
		<dc:creator>Stefan Bundy</dc:creator>
		<pubDate>Sat, 06 Aug 2011 09:52:57 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-38571</guid>
		<description>Thanks for the post.  I&#039;m bookmarking your blog and will certainly return!</description>
		<content:encoded><![CDATA[<p>Thanks for the post.  I&#8217;m bookmarking your blog and will certainly return!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 77: TZ Discussion – TWaT (This Week about Tech)</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-17559</link>
		<dc:creator>77: TZ Discussion – TWaT (This Week about Tech)</dc:creator>
		<pubDate>Mon, 11 Oct 2010 05:14:55 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-17559</guid>
		<description>[...] met and their early experiences using Agile methods, Alex&#8217;s work with Formula One racing, whether or not soft deletes are a bad idea, InnoDB vs MyISAM, taking advantage of micro opportunities, a [...]</description>
		<content:encoded><![CDATA[<p>[...] met and their early experiences using Agile methods, Alex&#8217;s work with Formula One racing, whether or not soft deletes are a bad idea, InnoDB vs MyISAM, taking advantage of micro opportunities, a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tarek Mahmud Apu</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-15885</link>
		<dc:creator>Tarek Mahmud Apu</dc:creator>
		<pubDate>Thu, 05 Aug 2010 05:58:53 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-15885</guid>
		<description>It&#039;s a nice post. Thanks a lot. 

I have faced lots of problem on this issue.  To maintain foreign key integrity and for reporting purposes, normally we change the status to &quot;delete&quot;.

I like the technique of storing the inactive data in separate table than the soft delete. But do u think creating view based on status can give better solution?

I liked that you mentioned  &quot;developers should definitely focus on the business scenario&quot;. Sometimes client force to do that because they think this is the standard way though they need not use the soft delete.. so it causes some extra effort on developing.</description>
		<content:encoded><![CDATA[<p>It&#8217;s a nice post. Thanks a lot. </p>
<p>I have faced lots of problem on this issue.  To maintain foreign key integrity and for reporting purposes, normally we change the status to &#8220;delete&#8221;.</p>
<p>I like the technique of storing the inactive data in separate table than the soft delete. But do u think creating view based on status can give better solution?</p>
<p>I liked that you mentioned  &#8220;developers should definitely focus on the business scenario&#8221;. Sometimes client force to do that because they think this is the standard way though they need not use the soft delete.. so it causes some extra effort on developing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ron</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-15860</link>
		<dc:creator>Ron</dc:creator>
		<pubDate>Wed, 04 Aug 2010 11:01:06 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-15860</guid>
		<description>Excellent!

From my experience, end users want to know what happened (the history of actions), so it is better to keep the deleted items in a separate table instead of implementing soft-delete.

implementing soft delete requires extra attention to primary database table to delete old rows and if your application is a huge one that inserts huge data per minute, soft-delete will definitely affect performance.</description>
		<content:encoded><![CDATA[<p>Excellent!</p>
<p>From my experience, end users want to know what happened (the history of actions), so it is better to keep the deleted items in a separate table instead of implementing soft-delete.</p>
<p>implementing soft delete requires extra attention to primary database table to delete old rows and if your application is a huge one that inserts huge data per minute, soft-delete will definitely affect performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nalin Jayasuriya</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-14861</link>
		<dc:creator>Nalin Jayasuriya</dc:creator>
		<pubDate>Fri, 11 Jun 2010 00:09:30 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-14861</guid>
		<description>There is another downside to soft delete with Microsoft&#039;s Entity Framework and DomainService usage. 

As of Visual Studio 2010 (and EF 4), there is no simple way to expressing fetching primary entities while &#039;including&#039; related entities and excluding the &#039;soft deleted&#039; related entities.  There is no syntax that expresses this requirement in the Linq to Entities model.

One more reason to re-consider having that &#039;isDeleted&#039; flag!

- Nalin J</description>
		<content:encoded><![CDATA[<p>There is another downside to soft delete with Microsoft&#8217;s Entity Framework and DomainService usage. </p>
<p>As of Visual Studio 2010 (and EF 4), there is no simple way to expressing fetching primary entities while &#8216;including&#8217; related entities and excluding the &#8216;soft deleted&#8217; related entities.  There is no syntax that expresses this requirement in the Linq to Entities model.</p>
<p>One more reason to re-consider having that &#8216;isDeleted&#8217; flag!</p>
<p>- Nalin J</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Are You Soft on Your Deletes? &#124; Eddie Awad&#39;s Blog</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-12918</link>
		<dc:creator>Are You Soft on Your Deletes? &#124; Eddie Awad&#39;s Blog</dc:creator>
		<pubDate>Mon, 15 Mar 2010 14:02:13 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-12918</guid>
		<description>[...] Good discussion followed which included a couple of interesting links: What is the best way to implement soft deletion? and The trouble with soft delete. [...]</description>
		<content:encoded><![CDATA[<p>[...] Good discussion followed which included a couple of interesting links: What is the best way to implement soft deletion? and The trouble with soft delete. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wesam Alalem</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-12581</link>
		<dc:creator>Wesam Alalem</dc:creator>
		<pubDate>Thu, 04 Feb 2010 15:05:15 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-12581</guid>
		<description>thanks a lot,
Great points mentioned, I&#039;ll keep this as reference.
Good luck,</description>
		<content:encoded><![CDATA[<p>thanks a lot,<br />
Great points mentioned, I&#8217;ll keep this as reference.<br />
Good luck,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Quick</title>
		<link>http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/comment-page-1/#comment-11728</link>
		<dc:creator>Steven Quick</dc:creator>
		<pubDate>Wed, 25 Nov 2009 04:01:52 +0000</pubDate>
		<guid isPermaLink="false">http://richarddingwall.name/?p=1909#comment-11728</guid>
		<description>Opps first paragraph above should have read:

From a database level perspective, the database itself can’t enforce that Job ID xyz should not be in both the Expired and the ActiveListing at the same time, not easily like with unique indexes and constraints on a single table.</description>
		<content:encoded><![CDATA[<p>Opps first paragraph above should have read:</p>
<p>From a database level perspective, the database itself can’t enforce that Job ID xyz should not be in both the Expired and the ActiveListing at the same time, not easily like with unique indexes and constraints on a single table.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

