{"id":52,"date":"2008-12-16T20:11:00","date_gmt":"2008-12-16T20:11:00","guid":{"rendered":"https:\/\/karwin.com\/blog\/index.php\/2008\/12\/16\/sql-antipatterns-tutorial-at-the-mysql-conf-expo-2009\/"},"modified":"2008-12-16T20:11:00","modified_gmt":"2008-12-16T20:11:00","slug":"sql-antipatterns-tutorial-at-the-mysql-conf-expo-2009","status":"publish","type":"post","link":"https:\/\/karwin.com\/blog\/index.php\/2008\/12\/16\/sql-antipatterns-tutorial-at-the-mysql-conf-expo-2009\/","title":{"rendered":"SQL Antipatterns Tutorial at the MySQL Conf &#038; Expo 2009"},"content":{"rendered":"<p>My tutorial proposal was accepted, so I&#8217;ll be speaking April 20 at the <a href=\"http:\/\/en.oreilly.com\/mysql2009\/\">MySQL Conference &amp; Expo 2009<\/a> in Santa Clara.<\/p>\n<p>My tutorial is &#8220;SQL Antipatterns Strike Back.&#8221;  SQL Antipatterns are frequent blunders committed by software developers, both novice and expert.<\/p>\n<p>I gave a similar tutorial last year, and I think it was well-received.  I&#8217;m keeping and improving the most interesting topics from last year&#8217;s tutorial, but over half of this year&#8217;s tutorial will be all-new!<\/p>\n<p>The new topics in my tutorial include:<\/p>\n<ul>\n<li>Polymorphic Associations<\/li>\n<li>Storing Tree-Structured Data<\/li>\n<li>Index Shotgun<\/li>\n<li>Using NULL<\/li>\n<li>Goldberg Machines<\/li>\n<li>Using JOIN (&#8230;or not)<\/li>\n<li>See No Evil<\/li>\n<li>Magic Beans<\/li>\n<li>Diplomatic Immunity<\/li>\n<\/ul>\n<p>The improved topics from last year include:<\/p>\n<ul>\n<li>Entity-Attribute-Value<\/li>\n<li>Metadata Tribbles<\/li>\n<li>FLOAT<\/li>\n<li>ENUM<\/li>\n<li>Ambiguous GROUP BY<\/li>\n<li>Using HAVING instead of WHERE<\/li>\n<li>Parameter Facade<\/li>\n<li>Phantom Side Effects<\/li>\n<\/ul>\n<p>Some of these topic names are meant to be mnemonics, just like names of <a href=\"http:\/\/c2.com\/cgi\/wiki?SoftwareDesignPatternsIndex\">design patterns<\/a> and <a href=\"http:\/\/c2.com\/cgi\/wiki?AntiPatternsCatalog\">anti-patterns<\/a>.  You&#8217;ll have to attend the tutorial to see the full meaning of these SQL Antipatterns!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My tutorial proposal was accepted, so I&#8217;ll be speaking April 20 at the MySQL Conference &amp; Expo 2009 in Santa Clara. My tutorial is &#8220;SQL Antipatterns Strike Back.&#8221; SQL Antipatterns are frequent blunders committed by software developers, both novice and expert. I gave a similar tutorial last year, and I think it was well-received. I&#8217;m [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[],"class_list":["post-52","post","type-post","status-publish","format-standard","hentry","category-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pawgV7-Q","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=52"}],"version-history":[{"count":0,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/52\/revisions"}],"wp:attachment":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}