<story><title>Cost of a Join</title><url>https://www.brianlikespostgres.com/</url></story><parent_chain></parent_chain><comment><author>jjeaff</author><text>I love a good writeup backed up with some performance benchmarks.&lt;p&gt;But I&amp;#x27;m a little befuddled as to why the three possible solutions to putting a &amp;quot;status&amp;quot; column in your Products table were:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    1. Add a status_id column to the product table and reference a new status table
    2. Add a status_id column to the product table and let the app define the mapping of what each status_id is
    3. Add a status column of type text to the product table
&lt;/code&gt;&lt;/pre&gt;
What about :&lt;p&gt;&lt;pre&gt;&lt;code&gt;    4. create an enum column with your possible statuses.
&lt;/code&gt;&lt;/pre&gt;
If you ever reach more than 65k possible statuses, you&amp;#x27;ve got a different problem.&lt;p&gt;Perhaps the status example is just a hypothetical example? Although the author says they would use option 1 in this case, so what gives? Seems crazy to create a join table for &amp;#x27;status&amp;#x27;.</text></comment>
<story><title>Cost of a Join</title><url>https://www.brianlikespostgres.com/</url></story><parent_chain></parent_chain><comment><author>Terr_</author><text>The submitted URL is not stable, it just links to the front page. So for the benefit of later-visitors, here&amp;#x27;s the direct link:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.brianlikespostgres.com&amp;#x2F;cost-of-a-join.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.brianlikespostgres.com&amp;#x2F;cost-of-a-join.html&lt;/a&gt;</text></comment>