title: Modeling Upvotes / Likes - one table per type, or one big table?
body: <p>I'm modeling a system that will have "upvotes" across various entity types - <code>Reports</code>, <code>Reviews</code>, and <code>Collections</code>.  </p>
  
  <p>These are the only three entities that can be upvoted, though there may be more in the future.  </p>
  
  <p>Currently, the db schema has <code>ReportUpvotes</code>, <code>ReviewUpvotes</code>, and <code>CollectionUpvotes</code>.  </p>
  
  <p>I'm wondering if it would be better to bring all of these tables together into a single <code>Upvotes</code> table, with an enum for <code>Type</code>.  </p>
  
  <p>What should I be considering when evaluating this kind of decision? </p>