title: Modeling a 2D Table in PostgreSQL (Django)
body: <p>So I'd like to model a 2D table in PostgreSQL, and by 2D I mean I'd like to add/update/delete both rows and columns. Before I really get into the details I wanted to convey that I did look into dynamic Django models such that I could extend models and add columns during runtime but to be honest it does seem like kind of a hack job, and none of those packages have good docs or is maintained as of now for the latest version of Django and Python. NoSQL is kinda a stretch to switch too this late in the game and eliminates many of the useful features of Django such as the ORM and model integration with DRF. </p>
  
  <p><a href="https://i.stack.imgur.com/DOFNH.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/DOFNH.png" alt="enter image description here"></a></p>
  
  <p>For example in this table, I have some required fields such as firmware name to which I might add publish date or build number or something of the sort. But I also have column headers which may be added or removed as new software versions are released, for example 4.0.1. Is there such a way of modeling this to optimally create a CRUD API that avoids unnecessary redundancy? </p>
  
  <p>As of now, I basically have the following models, but of course storing the release number multiple times creates redundancy for every column. Also makes the frontend UI very convoluted because I have to click into a row and basically edit each support value one by one in a modal which in terms of UX makes no sense. Any ideas would be much appreciated!</p>
  
  <ul>
  <li>Table   (title, footnotes)</li>
  <li>Row     (name, date, build, etc, FK to Table)</li>
  <li>Support (release, value, FK to Row)</li>
  </ul>