<?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: Rules of Database App Aging</title>
	<atom:link href="http://push.cx/2009/rules-of-database-app-aging/feed" rel="self" type="application/rss+xml" />
	<link>http://push.cx/2009/rules-of-database-app-aging</link>
	<description>A tea-drinking web geek's coffee-flavored blog</description>
	<lastBuildDate>Tue, 12 Jan 2010 15:38:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Key/value storage engines &#171; sociomantic labs</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-96423</link>
		<dc:creator>Key/value storage engines &#171; sociomantic labs</dc:creator>
		<pubDate>Tue, 29 Sep 2009 14:14:04 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-96423</guid>
		<description>[...] http://push.cx/2009/rules-of-database-app-aging/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://push.cx/2009/rules-of-database-app-aging/" rel="nofollow">http://push.cx/2009/rules-of-database-app-aging/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Analysis from the Bottom Up &#124; Improving with Age</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-92554</link>
		<dc:creator>Analysis from the Bottom Up &#124; Improving with Age</dc:creator>
		<pubDate>Thu, 02 Apr 2009 16:31:13 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-92554</guid>
		<description>[...] When I design an application, one of the easier traps to fall into, is the idea that there is only one consumer of the database. This is the luxury of building a brand new web application that has no legacy integration requirements! But, it is a false promise, because it only lasts for a short period of time. Even if you never integrate with another application, the application itself becomes a &#8220;legacy&#8221; component. Eventually, there will develop a mismatch between the data model and the application. [...]</description>
		<content:encoded><![CDATA[<p>[...] When I design an application, one of the easier traps to fall into, is the idea that there is only one consumer of the database. This is the luxury of building a brand new web application that has no legacy integration requirements! But, it is a false promise, because it only lasts for a short period of time. Even if you never integrate with another application, the application itself becomes a &#8220;legacy&#8221; component. Eventually, there will develop a mismatch between the data model and the application. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Перевод &#8220;Anti-RDBMS: A list of distributed key-value stores&#8221; &#171; 13 попугаев</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-90860</link>
		<dc:creator>Перевод &#8220;Anti-RDBMS: A list of distributed key-value stores&#8221; &#171; 13 попугаев</dc:creator>
		<pubDate>Sun, 22 Feb 2009 16:22:53 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-90860</guid>
		<description>[...] база данных для веба. Статья Rules of Database App Aging некоторым образом объясняет почему [...]</description>
		<content:encoded><![CDATA[<p>[...] база данных для веба. Статья Rules of Database App Aging некоторым образом объясняет почему [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Tarnowsky</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-90091</link>
		<dc:creator>Adam Tarnowsky</dc:creator>
		<pubDate>Thu, 29 Jan 2009 17:51:13 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-90091</guid>
		<description>Oh entropy...</description>
		<content:encoded><![CDATA[<p>Oh entropy&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Graceful Exits &#187; Blog Archive &#187; I&#8217;m writing approximately fifteen percent of a book</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89941</link>
		<dc:creator>Graceful Exits &#187; Blog Archive &#187; I&#8217;m writing approximately fifteen percent of a book</dc:creator>
		<pubDate>Sat, 24 Jan 2009 17:56:05 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89941</guid>
		<description>[...] of discussion of this on the blogosphere which I don&#8217;t want to particularly repeat here. Relentless backwards compatibility can be harmful to a living, breathing application, which exists to enable yet constrain a programmer&#8217;s [...]</description>
		<content:encoded><![CDATA[<p>[...] of discussion of this on the blogosphere which I don&#8217;t want to particularly repeat here. Relentless backwards compatibility can be harmful to a living, breathing application, which exists to enable yet constrain a programmer&#8217;s [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Digitalia &#8211; Links For Friday 23rd January 2009</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89893</link>
		<dc:creator>Digitalia &#8211; Links For Friday 23rd January 2009</dc:creator>
		<pubDate>Fri, 23 Jan 2009 18:02:27 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89893</guid>
		<description>[...] Rules of Database App Aging - Push cx This will be incomprehensible to non developers in the audience, but oh god, this is so painfully, painfully true. (tags: humour programming webdev schema) [...]</description>
		<content:encoded><![CDATA[<p>[...] Rules of Database App Aging &#8211; Push cx This will be incomprehensible to non developers in the audience, but oh god, this is so painfully, painfully true. (tags: humour programming webdev schema) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anders Nawroth</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89844</link>
		<dc:creator>Anders Nawroth</dc:creator>
		<pubDate>Tue, 20 Jan 2009 13:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89844</guid>
		<description>I wrote &lt;a href=&quot;http://blog.nawroth.com/2009/01/aging-databases-and-relationships.html&quot; rel=&quot;nofollow&quot;&gt;Aging databases and relationships&lt;/a&gt; in response to this worthwhile post.</description>
		<content:encoded><![CDATA[<p>I wrote <a href="http://blog.nawroth.com/2009/01/aging-databases-and-relationships.html" rel="nofollow">Aging databases and relationships</a> in response to this worthwhile post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damian Cugley</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89843</link>
		<dc:creator>Damian Cugley</dc:creator>
		<pubDate>Tue, 20 Jan 2009 13:44:10 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89843</guid>
		<description>You young folk and your text-based HTML templates! You would never get away with an unmatched &lt;code&gt;&lt;code&gt;&lt;/code&gt; tag if you were using Genshi or some other XML-based templating system... :-)

&lt;a href=&quot;http://qntm.org/?gay&quot; rel=&quot;nofollow&quot;&gt;Gay marriage: the database engineering perspective&lt;/a&gt; illustrates these trends well. I would add one other change I have occasionally made, which is replacing a boolean (bit) field with a nullable timestamp.</description>
		<content:encoded><![CDATA[<p>You young folk and your text-based HTML templates! You would never get away with an unmatched <code>&lt;code&gt;</code> tag if you were using Genshi or some other XML-based templating system&#8230; :-)</p>
<p><a href="http://qntm.org/?gay" rel="nofollow">Gay marriage: the database engineering perspective</a> illustrates these trends well. I would add one other change I have occasionally made, which is replacing a boolean (bit) field with a nullable timestamp.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tadhg.com &#187; Blog Archive &#187; Rules of Database App Aging</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89831</link>
		<dc:creator>tadhg.com &#187; Blog Archive &#187; Rules of Database App Aging</dc:creator>
		<pubDate>Tue, 20 Jan 2009 02:04:45 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89831</guid>
		<description>[...] came across a blog post about the Rules of Database App Aging today. I&#8217;m having another look at my database assumptions at the moment, and the three rules [...]</description>
		<content:encoded><![CDATA[<p>[...] came across a blog post about the Rules of Database App Aging today. I&#8217;m having another look at my database assumptions at the moment, and the three rules [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dean Landolt</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89827</link>
		<dc:creator>Dean Landolt</dc:creator>
		<pubDate>Mon, 19 Jan 2009 21:22:07 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89827</guid>
		<description>&lt;q&gt;Then, about a week later, there’s a politician who’s a Democrat but running for re-election as an Independent…&lt;/q&gt;

Ahh, Lieberman. I witnessed that blow up the Library of Congress&#039; data set. He insisted on being called an &quot;Independent Democrat&quot; but party was only 1 char, so they had to use &quot;J&quot;. Of course, they&#039;re running up against their schema-imposed hard limit of 26 parties, and a &lt;em&gt;lot&lt;/em&gt; of guard clauses will have to be concocted when that happens.</description>
		<content:encoded><![CDATA[<p><q>Then, about a week later, there’s a politician who’s a Democrat but running for re-election as an Independent…</q></p>
<p>Ahh, Lieberman. I witnessed that blow up the Library of Congress&#8217; data set. He insisted on being called an &#8220;Independent Democrat&#8221; but party was only 1 char, so they had to use &#8220;J&#8221;. Of course, they&#8217;re running up against their schema-imposed hard limit of 26 parties, and a <em>lot</em> of guard clauses will have to be concocted when that happens.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anti-RDBMS: A list of distributed key-value stores &#124; Richard Jones, Esq.</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89821</link>
		<dc:creator>Anti-RDBMS: A list of distributed key-value stores &#124; Richard Jones, Esq.</dc:creator>
		<pubDate>Mon, 19 Jan 2009 17:15:31 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89821</guid>
		<description>[...] curious how the web&#8217;s trendiest document database works under the hood. This article on the Rules of Database App Aging goes some way to explaining why document-oriented databases make sense. CouchDB can do full text [...]</description>
		<content:encoded><![CDATA[<p>[...] curious how the web&#8217;s trendiest document database works under the hood. This article on the Rules of Database App Aging goes some way to explaining why document-oriented databases make sense. CouchDB can do full text [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Harkins</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89783</link>
		<dc:creator>Peter Harkins</dc:creator>
		<pubDate>Sun, 18 Jan 2009 17:37:20 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89783</guid>
		<description>Jonathan: Yes and no, sometimes the information for great planning doesn&#039;t exist or isn&#039;t available. The best plan is then to fit the circumstances as you know them and change when they change, which is what&#039;s described above. It only looks like poor planning in hindsight.</description>
		<content:encoded><![CDATA[<p>Jonathan: Yes and no, sometimes the information for great planning doesn&#8217;t exist or isn&#8217;t available. The best plan is then to fit the circumstances as you know them and change when they change, which is what&#8217;s described above. It only looks like poor planning in hindsight.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pinderkent</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89772</link>
		<dc:creator>Pinderkent</dc:creator>
		<pubDate>Sun, 18 Jan 2009 03:02:25 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89772</guid>
		<description>&lt;strong&gt;Most real-world relationships are truly many-to-many....&lt;/strong&gt;

Today I read some very true observations from Peter Harkins about the nature of aging databases. He mentions three such observations in his article, and other readers have contributed several more in the comments for that article, as well as at other s...</description>
		<content:encoded><![CDATA[<p><strong>Most real-world relationships are truly many-to-many&#8230;.</strong></p>
<p>Today I read some very true observations from Peter Harkins about the nature of aging databases. He mentions three such observations in his article, and other readers have contributed several more in the comments for that article, as well as at other s&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Holland</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89771</link>
		<dc:creator>Jonathan Holland</dc:creator>
		<pubDate>Sun, 18 Jan 2009 01:29:46 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89771</guid>
		<description>This sounds more like database aging when your original schema was poorly planned.</description>
		<content:encoded><![CDATA[<p>This sounds more like database aging when your original schema was poorly planned.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Harkins</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89770</link>
		<dc:creator>Peter Harkins</dc:creator>
		<pubDate>Sun, 18 Jan 2009 01:27:40 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89770</guid>
		<description>Ah, got me there, then.</description>
		<content:encoded><![CDATA[<p>Ah, got me there, then.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Rolsky</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89767</link>
		<dc:creator>Dave Rolsky</dc:creator>
		<pubDate>Sat, 17 Jan 2009 20:55:01 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89767</guid>
		<description>Relations are not relationships. Relations is the logic/math geekspeak for what SQL calls tables (though tables aren&#039;t _quite_ the same as proper relational relations).

The &quot;relational&quot; in relational databases has nothing to do with relationships, rather it&#039;s called relational because the data is stored in relations (tables).</description>
		<content:encoded><![CDATA[<p>Relations are not relationships. Relations is the logic/math geekspeak for what SQL calls tables (though tables aren&#8217;t _quite_ the same as proper relational relations).</p>
<p>The &#8220;relational&#8221; in relational databases has nothing to do with relationships, rather it&#8217;s called relational because the data is stored in relations (tables).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Al</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89760</link>
		<dc:creator>Al</dc:creator>
		<pubDate>Sat, 17 Jan 2009 13:29:49 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89760</guid>
		<description>We try as best as we can to continually refactor our code and database in step with feature requests. I&#039;ve seen far too many projects where that doesn&#039;t happen at an appropriate pace to changes in an application and virtually every point you listed happens to some extent or another and more.</description>
		<content:encoded><![CDATA[<p>We try as best as we can to continually refactor our code and database in step with feature requests. I&#8217;ve seen far too many projects where that doesn&#8217;t happen at an appropriate pace to changes in an application and virtually every point you listed happens to some extent or another and more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89759</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Sat, 17 Jan 2009 13:16:28 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89759</guid>
		<description>Another one:
- enumerations in applications often become user definable, usually resulting in a mess</description>
		<content:encoded><![CDATA[<p>Another one:<br />
- enumerations in applications often become user definable, usually resulting in a mess</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Kester</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89755</link>
		<dc:creator>Jason Kester</dc:creator>
		<pubDate>Sat, 17 Jan 2009 07:25:29 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89755</guid>
		<description>One more you missed:

4. Existing fields get &quot;re-purposed&quot;

So the Notes column suddenly has a bunch of State Codes in it, &quot;Select distinct Gender from SiteUser&quot; returns seven rows, and some clever junior dev notices that the TripID column in the Image table doesn&#039;t get used in the case of Outfitters, so really we can just store OutfitterIDs in that column too.  Of course we&#039;ll need to drop that foreign key constraint...</description>
		<content:encoded><![CDATA[<p>One more you missed:</p>
<p>4. Existing fields get &#8220;re-purposed&#8221;</p>
<p>So the Notes column suddenly has a bunch of State Codes in it, &#8220;Select distinct Gender from SiteUser&#8221; returns seven rows, and some clever junior dev notices that the TripID column in the Image table doesn&#8217;t get used in the case of Outfitters, so really we can just store OutfitterIDs in that column too.  Of course we&#8217;ll need to drop that foreign key constraint&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale</title>
		<link>http://push.cx/2009/rules-of-database-app-aging/comment-page-1#comment-89745</link>
		<dc:creator>Dale</dc:creator>
		<pubDate>Fri, 16 Jan 2009 18:29:05 +0000</pubDate>
		<guid isPermaLink="false">http://push.cx/?p=407#comment-89745</guid>
		<description>Good article. Thanks.  And the client can&#039;t really afford to pay you for the real time it takes to avoid these problems so you end up doing a lot of it for free.</description>
		<content:encoded><![CDATA[<p>Good article. Thanks.  And the client can&#8217;t really afford to pay you for the real time it takes to avoid these problems so you end up doing a lot of it for free.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.646 seconds -->
