title: Schema design for selecting multiple U.S. states, or "all"
body: <p>As a simplified example, imagine that I'm selling widgets.  I sell them nationwide (in both the U.S. and Canada) but there are some that can only be sold in certain areas (one or more U.S. states or Canadian provinces).</p>
  
  <p>I'd like a good way to store this information, coupled with a fast way to query for the widgets that are available to a given user.  "U.S., 50 states and D.C." is the most common value, so I'd rather not insert 51 rows.</p>
  
  <p>MySQL doesn't support bitmap indexes, so that's ruled out.</p>
  
  <p>Here are some combinations:</p>
  
  <ul>
  <li>U.S. 50 states and D.C.</li>
  <li>U.S. 50 states, D.C., Canada, but not Quebec.</li>
  <li>U.S. 48 contiguous states and D.C.</li>
  <li>U.S., D.C., but not Colorado</li>
  <li>U.S., D.C., and territories (Puerto Rico, etc).</li>
  </ul>
  
  <p>My user will have given me one value for their state/province and country.</p>
  
  <p>Can you suggest a schema that provides good storage and fast matching?</p>
  
  <p>Thanks!</p>